Application
代表處理用戶端請求的執行環境。它的主要任務是解析使用者請求并将之指派給合适的控制器以進行下一步的處理。它也作為保持應用程式級配置的中心場所,應用程式也被叫做前端控制器。
Application是由入口腳本建立的單例,可在任何位置通過Yii::app()通路。
Application的配置通常用一個獨立的PHP腳本檔案(protected/config/main.php)儲存。我們可以将配置檔案的檔案名以參數的形式傳遞給application的構造函數;或者以如下形式傳遞給Yii::createWebApplication() ,通常在入口腳本進行傳遞。
$app=Yii::createWebApplication($configFile);
2.3.3 應用元件
Application的功能性可以很容易被自定義及擴充,這都依賴于它靈活的元件架構。application管理着一套應用元件,其每個元件實作一些特定的功能。如,application在CUrlManager與CHttpRequest元件的幫助下才能解析使用者請求。
通過配置application的components屬性,我們可以自定義app中任何使用的元件的類與屬性值。比如,我們可以配置CMemCache元件以便它能使用多個memcache伺服器進行緩存。
應用元件是按需建立的,這意味着如果使用者請求期間應用元件未被通路它是可以不被建立的。
2.3.4 核心應用元件
Yii預先定義了一套核心的應用元件,這些元件提供了Web應用中通用的特性。CWebApplication中預先聲明的核心元件如下:
assetManager:CAssetManager 管理私有資源檔案的釋出
authManager:CAuthManager 管理基于角色的通路控制(RBAC)
cache:CCache 提供資料緩存功能。注意,你必須聲明實際的類(CMemCache,CDbCache)。否則,當你通路該元件時,會傳回null。
clientScript:CClientScript 管理用戶端腳本(javascripts與CSS)
coreMessages:CPhpMessageSource 提供由Yii架構使用的轉換過的核心消息。
db:CDbConnection 提供資料庫連接配接。注意,你必須配置其connectionString屬性以便使用該元件。
errorHandler:CErrorHandler 處理為捕捉的PHP錯誤與異常。
format:CFormatter 格式化資料值的顯示形式。
messages:CPhpMessageSource 提供由Yii應用使用的轉換過的消息。
request:CHttpSession 提供與session相關的功能。
statePersister:CStatePersister 提供全局狀态持久方法。
urlManager:CUrlManager 提供URL分析與建立的功能
user:CWebUser 代表目前使用者的身份資訊
themeManager:CThemeManager 管理主題
2.3.5 應用程式的生命周期