首頁  >  文章  >  後端開發  >  Yii框架官方指南系列13—基礎知識:發展規範

Yii框架官方指南系列13—基礎知識:發展規範

黄舟
黄舟原創
2017-02-13 09:05:221289瀏覽


Yii 偏好規範勝於配置。遵循規格可使你能夠創建成熟的Yii應用程式而不需要編寫、維護複雜的配置。 當然了,在必要時,Yii 仍然可以在幾乎所有的方面透過配置實現自訂。

下面我們講解 Yii 程式設計中所建議的開發規格。 為簡單起見,我們假設 WebRoot 是 Yii 應用程式安裝的目錄。

1. URL

預設情況下,Yii 辨識以下格式的 URL:

http://www.php.cn/

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

r

 變數CWebApplication::defaultController中定義)。 透過 CUrlManager 的幫助,可以創建更可識別,更 SEO 友善的 URL,例如

http://www.php.cn/

。此功能在 URL Management 中有詳細講解。

2. 代碼Yii 推薦命名變數、函數和類別時使用 駝峰風格,即每個單字的首字母大寫並連在一起,中間無空格。 變數名稱和函數名稱應該會使它們的第一個單字全部小寫,以使其區別於類別名稱(例如:$basePathrunController(),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

)。

3. 配置配置是一個鍵值對數組。每個鍵代表了所配置的物件中的屬性名,每個值則為對應屬性的初始值。 例如,array('name'=>'My application', 'basePath'=>'./protected') 初始化了 name 和 

basePath

 base為它們對應的陣列值。

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

4. 文件

命名和使用文件的規範取決於它們的類型。 類文件應以它們包含的公有類命名。例如, CController 類別位於 

CController.php

 檔案中。 公有類別是可以被任何其他類別使用的類別。每個類別文件應包含最多一個公有類別。 私有類別(只能被一個公有類別使用的類別)可以放在使用此類別的公有類別所在的檔案中。 視圖檔案應以視圖的名字命名。例如, index 視圖位於 

index.php

 檔案。 視圖文件是一個PHP腳本文件,它包含了用於呈現內容的 HTML和PHP程式碼。

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

5. 目錄

    Yii 假定了一系列預設的目錄用於不同的場合。如果需要,每個目錄都可以自訂。
  • WebRoot/protected: 這是 應用基礎目錄, 是放置所有安全敏感的PHP腳本和資料檔案的地方。 Yii 有一個預設的 

    application
  •  別名指向此目錄。 此目錄及目錄中的檔案應保護起來防止Web使用者存取。它可以透過 CWebApplication::basePath 自訂。
  • WebRoot/protected/runtime
  • : 此目錄放置應用在運行時產生的私有臨時檔案。 此目錄必須對 Web 伺服器進程可寫入。它可以透過 CApplication::runtimePath自訂。
  • WebRoot/protected/extensions
  • : 此目錄放置所有第三方擴充功能。 它可以透過 CApplication::extensionPath自訂。
  • WebRoot/protected/modules
  • : 此目錄放置所有的應用 模組,每個模組使用一個子目錄。
  • WebRoot/protected/controllers🎜: 此目錄放置所有控制器類別檔案。 它可以透過CWebApplication::controllerPath 自訂。 🎜
  • WebRoot/protected/views: 此目錄放置所有試圖文件, 包含控制器視圖,佈局視圖和系統視圖。 它可以透過 CWebApplication::viewPath 自訂。

  • WebRoot/protected/views/ControllerID: 此目錄放置單一控制器類別中使用的視圖檔案。 此處的ControllerID 是指控制器的 ID 。它可以透過 CController::viewPath 自訂。

  • WebRoot/protected/views/layouts: 此目錄放置所有版面檢視檔案。它可以透過CWebApplication::layoutPath 自訂。

  • WebRoot/protected/views/system: 此目錄放置所有系統視圖檔案。 系統視圖檔案是用來顯示異常和錯誤的範本。它可以透過 CWebApplication::systemViewPath 自訂。

  • WebRoot/assets: 此目錄放置公用資源檔案。 資源檔案是可以被發布的,可由Web使用者存取的私有檔案。此目錄必須對 Web 伺服器進程可寫入。 它可以透過 CAssetManager::basePath 自訂

  • WebRoot/themes: 此目錄放置應用程式使用的不同的主題。每個子目錄即一個主題,主題的名字即目錄的名字。 它可以透過 CThemeManager::basePath 自訂。

6. 資料庫

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

  • 資料庫表名和列名都使用小寫命名。

  • 名字中的單字應使用底線分割 (例如 product_order)。

  • 對於表名,你既可以使用單數也可以使用複數。但 不要 同時使用兩者。為簡單起見,我們推薦使用單數名字。

  • 表名可以使用一個通用前綴,例如 tbl_ 。這樣當應用程式所使用的表和另一個應用程式說使用的表共存於同一個資料庫中時就特別有用。 這兩個應用的表可以透過使用不同的表前綴很容易地區分開。

以上就是Yii框架官方指南系列13——基礎知識:開發規範的內容,更多相關內容請關注PHP中文網(www.php.cn)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn