應用是指執行用戶的訪問指令。其主要任務是解析用戶指令,并將其分配給相應的控制器以進行進一步的處理。 應用同時也是一個存儲參數的地方。因為這個原因,應用一般被稱為“前端控制器”。
入口腳本將應用創建為一個單例. 應用單例可以在任何位置通過?Yii::app()?來訪問.
應用配置? ? ? ? ?(推薦學習:yii教程)
默認情況下, 應用是 CWebApplication 類的一個實例. 要對其進行定制, 通常是在應用實例被創建的時候提供一個配置文件 (或數組) 來初始化其屬性值. 另一個定制應用的方法就是擴展 CWebApplication 類.
配置是一個鍵值對的數組. 每個鍵名都對應應用實例的一個屬性, 相應的值為屬性的初始值. 舉例來說, 下面的代碼設定了應用的 名稱 和 默認控制器屬性.
array( ????'name'=>'Yii?Framework', ????'defaultController'=>'site', )
我們一般將配置保存在一個單獨的PHP代碼里(e.g. protected/config/main.php). 在這個代碼里,我們返回以下參數數組,
return?array(...);
為執行這些配置,我們一般將這個文件作為一個配置,傳遞給應用的構造器。或者象下述例子這樣傳遞給Yii::createWebApplication() 我們一般在 entry script里界定這些配置:
$app=Yii::createWebApplication($configFile);
提示: 如果應用配置非常復雜,我們可以將這分成幾個文件,每個文件返回一部分配置參數。接下來,我們在主配置文件里用PHP include() 把其它 配置文件合并成一個配置數組。
應用的主目錄
應用的主目錄是指包含所有安全系數比較高的PHP代碼和數據的根目錄。 在默認情況下,這個目錄一般是入口代碼所在目錄的一個目錄: protected 。 這個路徑可以通過在application configuration里設置 basePath來改變.
普通用戶不應該能夠訪問應用文件夾里的內容。在 Apache HTTP 服務器里, 我們可以在這個文件夾里放一個 .htaccess 文件. .htaccess的文件內容是這樣的:
deny?from?all
應用的生命周期
當處理一個用戶請求時,一個應用程序將經歷如下生命周期:
建立類自動加載器和錯誤處理;
注冊核心應用組件;
讀取應用配置;
用CApplication::init()初始化應用程序。
讀取靜態應用組件;
觸發onBeginRequest事件;
處理用戶請求:
解析用戶請求;
創建控制器;
執行控制器;
觸發onEndRequest事件;