規範

Yii 偏愛規範勝於配置。遵循規範可使你能夠建立成熟的 Yii 應用程式而不需要撰寫、維護複雜的配置。 當然了,在必要時,Yii 仍然可以通過配置來實現自行定義的所有東西。

下面我們講解 Yii 開發中推薦的撰寫規範。 為簡單起見,我們假設 WebRoot 是 Yii 應用程式安裝的目錄。

URL

預設情況下,Yii 識別如下格式的 URL:

http://hostname/index.php?r=ControllerID/ActionID

這個 r GET 變數意義是 路由(route) ,它可以被 Yii 解析為 控制器和動作。 如果 ActionID 被省略,控制器將使用預設的動作(在CController::defaultAction中定義); 如果 ControllerID 也被省略(或者 r 變數不存在),應用程式將使用預設的控制器 (在CWebApplication::defaultController中定義)。

通過 CUrlManager 的幫助,可以建立更加可識別,更加 SEO 友好的 URL,例如 http://hostname/ControllerID/ActionID.html。此功能在 URL Management 中有詳細講解。

程式碼

Yii 推薦命名變數、函數和類別時使用 駝峰風格,即每個單字的首字母大寫並連在一起,中間無空格。 變數名和函數名應該使它們的第一個單字全部小寫,以使其區別於類別名(例如:$basePath, runController()LinkPager)。至於私有類別成員變數來說,我們推薦以下劃線作為其名字前綴(例如: $_actionList)。

由於在 PHP 5.3.0 之前不支援名字空間,我們推薦類別要通過某種獨立的方式命名,以避免和第三方類別發生衝突。鑒於此, 所有的 Yii 框架類別名以 "C" 作前綴。

一個針對控制器名字的特殊規則是它們必須以單字 Controller 結尾。那麼控制器 ID 即類別名的首字母小寫並去掉單字 Controller。 例如:PageController 類別的 ID 就是 page 。這個規則使應用程式更加安全。它還使控制器相關的URL更加簡單 (例如:/index.php?r=page/index 而不是 /index.php?r=PageController/index)。

配置

配置是一個鍵值對陣列。每個鍵代表了所配置的對象中的屬性名,每個值則為相應屬性的初始值。 例如: array('name'=>'My application', 'basePath'=>'./protected') 初始化了 namebasePath 屬性為它們相應的陣列值。

類別中任何可寫的屬性都可以被配置。如果沒有配置,屬性將使用它們的預設值。 當配置一個屬性時,最好閱讀相應文件以保證初始值正確。

文件

命名和使用文件的規範取決於它們的類別型。

類別文件應以它們包含的公有類別命名。例如, CController 類別位於 CController.php 文件中。 公有類別是可以被任何其他類別使用的類別。每個類別文件應包含最多一個公有類別。 私有類別(只能被一個公有類別使用的類別)可以放在使用此類別的共同類別所在的文件中。

視圖文件應以視圖的名字命名。例如, index 視圖位於 index.php 文件中。 視圖文件是一個 PHP 腳本文件,它包含了用於呈現內容的 HTML 和 PHP 程式碼。

配置文件可以任意命名。 配置文件是一個PHP腳本,它的主要目的是返回一個體現配置的關聯陣列。

目錄

Yii 假定了一系列預設的目錄用於不同的場合。如果需要,每個目錄都可以自定。

資料庫

多數 Web 應用程式是由資料庫驅動的。為了最佳時間,我們 推薦在對表和列命名時使用如下命名規範。注意,這些規範並不是 Yii 所必須的。

$Id$