[Yii]Ch.0-4 建立第一個Web app
最近公事繁忙,一回神已經兩週沒更新blog了orz。 現在Yii framework,已經merge到github上了,可以clone下來對yii作版本管理:)
1
|
|
前面講到的部分,基本上是屬於環境配置的部分,接下來我們要正式的進入實作階段:)
首先建立一個新的Web App (這邊以~/htdocs 為網站根目錄)
1
|
|
yiic是YiiFramework內建的一個console工具可以快速建立web app,作migration,shell模式下可以建立model,scaffold,module等等,建議使用強大的網頁介面Gii,不過我還是習慣用console :D
建立了一個新的web app之後,首先我們可以看到資料夾內作為bootstrap的index.php,這邊稍微簡單講一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
可以看到require了yii.php(Production環境可以改用yiilite.php),定義了DEBUG跟TRACE_LEVEL。 這兩個常數會決定yii會不會寫入log,以及log與錯誤訊息顯示的詳細程度。
Production環境中為了提高app的performance這兩個常數會定義為false跟0。
然後我們可以看到Yii將會以$config變數指定的config檔案開啟一個yii app。
首先我們要了解一下Yii的檔案結構:
1 2 3 4 5 6 7 |
|
assets的部分,其實就是運用CAssetsManager
類別來控管或自動產出包括js,css等有可能造成衝突的檔案,有機會在詳細的討論,css,images,可以不透過Yii直接引用的靜態css,image檔案,theme則是不使用預設的them template時,放上自己或是別人寫的theme。 protected資料夾則是整個yii app的靈魂所在,這邊我們就另外的來看一下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
protected資料夾簡單分成幾個部分:
- components
- config
- controllers
- extensions
- models
- tests
- views
components放置一些可以重用的開發者自行定義的元件 config是全站的設定檔,包含網站與cosole app還有測試環境的設定
controllers,models,views三個資料夾是放置mvc結構的檔案,controllers裡面的class name跟views裡的檔案結構是有相對應的關係的,預設裡面有一個SiteController,views裡面會有相對應的site資料夾存放他的前端呈現的頁面。models則是放置了所有資料庫相關的ActiveRecord Class。
tests資料夾則是放置PHPUnit的測試scripts,使用gii或是yiic shell產生Model時,會自動的產生出相對應的ModelTest類別,對有做單元測試的開發者來講可以相當方便的使用PHPUnit來作測試,也支援使用Selenium來作功能測試。
Yii整體的優點其實很多,就這篇的資料夾結構來講可以看出,其Yii已經幫你產出了測試框架,在做UnitTest,Functional Test可以很快的進入狀況,尤其實你是屬於採用TDD方法來開發的開發者。:)