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, 我们查阅这个类的定义文件,查看这个类的公共成员变量。
——————————————————————————————
——————————————————————————————————
——————————————————————————————————————————————————————————————————————————