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綁定了兩種應用類型:
- 網絡應用(CWebApplication)
- 控制檯應用
它們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, 我們查閱這個類的定義文件,查看這個類的公共成員變量。
——————————————————————————————
——————————————————————————————————
——————————————————————————————————————————————————————————————————————————