Yii - main.php - 配置

Yii是個可定製的框架。main.php是Yii的配置文件,給我們提供了一個方便的方法來設置不同的應用組件,它位於(protected/config/)目錄下。

———數據庫的配置———


return array(
    ...
    'components'=>array(
        'db'=>array(
            'class'=>'system.db.CDbConnection',
            'connectionString'=>'mysql:host=localhost;dbname=database_name',
            'username'=>'root',
            'password'=>'',
            'charset'=>'utf8',
        ),
        ...
    ),
    ...
);

———分析—————

當你第一次直接或通過活躍記錄模型(AR)使用Yii::app()->db組件,Yii 將創建一個組件 並且 用 應用配置文件 main.php 中組件部分db數組中相應的值來始化它的公共屬性。在上面的代碼裏 ’connectionString’ 的值將被分配給 CDbConnection::connectionString , ‘username’ 將被分配給 CDbConnection::username ,諸如此類........

在上面的代碼中,”class”屬性有點兒特殊。它不在CDbConnection類中,它可以用來覆寫一個類,這種方法可以覆寫每一個應用組件,在一個標準組件不適合你的應用的情況下很有用途。


——————————————————————————————————————————————————————————————————————————————————————


有哪些 Yii組件 可以配置。Yii綁定了兩種應用類型:

  1. 網絡應用(CWebApplication)
  2. 控制檯應用

它們2個都是都是繼承自CApplication,所以命令行和網絡應用都享有CApplication類的組件。


Yii組件的哪些屬性可以配置

                                              ——組件的公共成員變量

                                              —— 組件的setter方法指定的屬性


控制檯和網絡應用都可以用的組件:

組件名 默認/建議的組件類 描述
coreMessages CPhpMessageSource 爲翻譯Yii框架消息提供消息源。
db CDbConnection 提供數據庫連接。
messages CPhpMessageSource 爲翻譯應用消息提供消息源。
errorHandler CErrorHandler 處理PHP錯誤和未捕獲的異常。
securityManager CSecurityManager 提供安全相關的服務,像散列和加密。
statePersister CStatePersister 提供全局狀態持續方法。
format CFormatter 提供一套常用的數據格式化方法。
cache CFileCache 提供緩存特性。

額外組件,只有網絡應用可用:

組件名 默認/建議的組件類 描述
coreMessages CPhpMessageSource 爲翻譯Yii框架消息提供消息源。
db CDbConnection 提供數據庫連接。
messages CPhpMessageSource 爲翻譯應用消息提供消息源。
errorHandler CErrorHandler 處理PHP錯誤和未捕獲的異常。
securityManager CSecurityManager 提供安全相關的服務,像散列和加密。
statePersister CStatePersister 提供全局狀態持續方法。
format CFormatter 提供一套常用的數據格式化方法。
cache CFileCache 提供緩存特性。
20% 20% 40%
組件名 默認的組件類 描述
session CHttpSession 提供 session相關的功能。
request CHttpRequest 封裝$_SERVER變量且在不同的web服務器中解決它的易變性。
也管理從用戶發送和接收的cookies。
urlManager CUrlManager URL 路由。用來生成和解析應用URLs。
assetManager CAssetManager 管理私有asset文件的發佈。
user CWebUser 描繪用戶的session信息。
themeManager CThemeManager 管理主題。
authManager CPhpAuthManager 管理基於角色的訪問控制(RBAC).
clientScript CClientScript 管理客戶端腳本。 (JavaScript and CSS).
widgetFactory CWidgetFactory 創建小掛件並支持小掛件換膚。

通過上面分析我們總結一下main.php配置的步驟:

1.先弄清楚你要配置的 組件所使用的類是什麼?(無論是核心組件還是自定義組件)

2. 組件類的公共成員變量都有哪些?(注意從父類繼承而來的公共成員變量)

3. 組件類都有哪些settter方法?(注意從父類繼承而來的方法)

明白了以上三個要點,我們就可以按規律定義組件的屬性,比如對最重要的db組件,我們發現這是一個核心組件,使用的類爲CDbConnection, 我們查閱這個類的定義文件,查看這個類的公共成員變量。

——————————————————————————————

                                                                                                      ——————————————————————————————————

——————————————————————————————————————————————————————————————————————————

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章