Yii框架官方指南系列13—基礎知識:發展規範
Yii 偏好規範勝於配置。遵循規格可使你能夠創建成熟的Yii應用程式而不需要編寫、維護複雜的配置。 當然了,在必要時,Yii 仍然可以在幾乎所有的方面透過配置實現自訂。
下面我們講解 Yii 程式設計中所建議的開發規格。 為簡單起見,我們假設 WebRoot 是 Yii 應用程式安裝的目錄。
1. URL
預設情況下,Yii 辨識以下格式的 URL:
http://www.php.cn/
r
GET 變數意為 路由(route) ,它可以被Yii解析為 控制器和動作。 如果 ActionID
省略,控制器會使用預設的動作(在CController::defaultAction中定義); 如果 ControllerID
也省略(或 r
變數不存在),則應用將使用預設的控制器(或在
變數CWebApplication::defaultController中定義)。 透過 CUrlManager 的幫助,可以創建更可識別,更 SEO 友善的 URL,例如
。此功能在 URL Management 中有詳細講解。
2. 代碼Yii 推薦命名變數、函數和類別時使用 駝峰風格,即每個單字的首字母大寫並連在一起,中間無空格。 變數名稱和函數名稱應該會使它們的第一個單字全部小寫,以使其區別於類別名稱(例如:
$basePath
, runController()
,LinkPager
)。對私有類別成員變數來說,我們建議以下劃線作為其名字前綴(例如:
)。
由於在 PHP 5.3.0 之前不支援名字空間,我們推薦類別要以某種獨立的方式命名,以避免和第三方類別發生衝突。有鑑於此, 所有的 Yii 框架類別名稱以 "C" 作前綴。 一個針對控制器名字的特殊規則是它們必須以單字
Controller
結尾。那麼控制器 ID 即類別名稱的首字母小寫並去除單字 Controller
。 例如,PageController
類別的 ID 就是 page
。這個規則使應用程式更加安全。它也讓控制器相關的URL更簡單(例如 /index.php?r=page/index
而不是
)。
3. 配置配置是一個鍵值對數組。每個鍵代表了所配置的物件中的屬性名,每個值則為對應屬性的初始值。 例如,
array('name'=>'My application', 'basePath'=>'./protected')
初始化了 name
和
base為它們對應的陣列值。
類別中任何可寫的屬性都可以被設定。如果沒有配置,屬性將使用它們的預設值。 當配置一個屬性時,最好閱讀對應文件以確保初始值正確。
4. 文件
命名和使用文件的規範取決於它們的類型。 類文件應以它們包含的公有類命名。例如, CController 類別位於
檔案中。 公有類別是可以被任何其他類別使用的類別。每個類別文件應包含最多一個公有類別。 私有類別(只能被一個公有類別使用的類別)可以放在使用此類別的公有類別所在的檔案中。 視圖檔案應以視圖的名字命名。例如,
index
視圖位於
檔案。 視圖文件是一個PHP腳本文件,它包含了用於呈現內容的 HTML和PHP程式碼。
設定檔可以任意命名。 設定檔是一個PHP腳本,它的主要目的是傳回一個體現配置的關聯陣列。
5. 目錄
- Yii 假定了一系列預設的目錄用於不同的場合。如果需要,每個目錄都可以自訂。
-
applicationWebRoot/protected
: 這是 應用基礎目錄, 是放置所有安全敏感的PHP腳本和資料檔案的地方。 Yii 有一個預設的 別名指向此目錄。 此目錄及目錄中的檔案應保護起來防止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)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Yii是一款基於PHP的高效能MVC框架,它提供了非常豐富的工具和功能,支援快速、有效率地開發Web應用程式。其中,Yii框架的RESTfulAPI功能得到了越來越多開發者的關注和喜愛,因為使用Yii框架可以非常方便地構建出高性能、易擴展的RESTful接口,為Web應用的開發提供了強有力的支持。 RESTfulAPI簡介RESTfulAPI是一種基於

Yii框架中間件:為應用程式提供多重資料儲存支援介紹中間件(middleware)是Yii框架中的重要概念,它為應用程式提供了多重資料儲存支援。中間件的作用類似於一個過濾器,它能夠在應用程式的請求和回應之間插入自訂程式碼。透過中間件,我們可以對請求進行處理、驗證、過濾,然後將處理後的結果傳遞給下一個中間件或最終的處理程序。 Yii框架中的中間件使用起來非常

隨著Web應用程式的快速發展,現代Web開發已成為一項重要技能。許多框架和工具可用於開發高效的Web應用程序,其中Yii框架就是一個非常流行的框架。 Yii是一個高效能、基於元件的PHP框架,它採用了最新的設計模式和技術,提供了強大的工具和元件,是建立複雜Web應用程式的理想選擇。在本文中,我們將討論如何使用Yii框架來建立Web應用程式。安裝Yii框架首先,

使用Yii框架實現網頁快取和頁面分塊的步驟引言:在Web開發過程中,為了提升網站的效能和使用者體驗,常常需要對頁面進行快取和分塊處理。 Yii框架提供了強大的快取和佈局功能,可以幫助開發者快速實現網頁快取和頁面分塊,本文將介紹如何使用Yii框架進行網頁快取和頁面分塊的實作。一、網頁快取開啟網頁快取在Yii框架中,可以透過設定檔來開啟網頁快取。開啟主設定檔co

近年來,隨著遊戲產業的快速發展,越來越多的玩家開始尋找遊戲攻略來幫助遊戲過關。因此,創建遊戲攻略網站可以讓玩家更方便取得遊戲攻略,同時也能為玩家提供更好的遊戲體驗。在創建這樣一個網站時,我們可以使用Yii框架來進行開發。 Yii框架是一個基於PHP程式語言的Web應用開發框架。它具有高效、安全、擴展性強等特點,可以為我們更快速、高效地創建一個遊戲攻略

Yii框架中間件:為應用程式新增日誌記錄和偵錯功能【引言】在開發Web應用程式時,我們通常需要添加一些附加功能以提高應用程式的效能和穩定性。 Yii框架提供了中間件的概念,使我們能夠在應用程式處理請求之前和之後執行一些額外的任務。本文將介紹如何使用Yii框架的中間件功能來實作日誌記錄和除錯功能。 【什麼是中間件】中間件是指在應用程式處理請求之前和之後,對請求和回應做

在Yii框架中,控制器(Controllers)扮演著處理請求的重要角色。除了處理常規的頁面請求之外,控制器還可以用於處理Ajax請求。本文將介紹在Yii框架中處理Ajax請求的方法,並提供程式碼範例。在Yii框架中,處理Ajax請求可以透過以下步驟進行:第一步,建立一個控制器(Controller)類別。可以透過繼承Yii框架提供的基礎控制器類別yiiwebCo

在現代的Web應用程式開發中,調試工具是不可或缺的。它們可以幫助開發者找到和解決應用程式的各種問題。 Yii框架作為一款流行的Web應用程式框架,自然也提供了一些除錯工具。本文將重點介紹Yii框架中的調試工具,並討論它們如何幫助我們分析和調試應用程式。 GiiGii是Yii框架的程式碼產生器。它可以自動產生Yii應用程式的程式碼,如模型、控制器和視圖等。使用Gii,
