核心应用组件
Yii 预定义了一系列核心应用组件,提供常见 Web 应用中所用的功能。例如, request 组件用于解析用户请求并提供例如 URL,cookie 等信息。 通过配置这些核心组件的属性,我们可以在几乎所有的方面修改Yii 的默认行为。
下面我们列出了由 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 - 格式化数值显示。此功能从版本 1.1.0 起开始提供。
-
messages: CPhpMessageSource - 提供Yii应用中使用的信息翻译。
-
request: CHttpRequest - 提供关于用户请求的信息。
-
securityManager: CSecurityManager - 提供安全相关的服务,例如散列,加密。
-
session: CHttpSession - 提供session相关的功能。
-
statePersister: CStatePersister - 提供全局状态持久方法。
-
urlManager: CUrlManager - 提供 URL 解析和创建相关功能
-
themeManager: CThemeManager - 管理主题。
应用的生命周期
当处理用户请求时,应用将经历如下声明周期:
-
通过 CApplication::preinit() 预初始化应用;
-
设置类的自动装载器和错误处理;
-
注册核心类组件;
-
加载应用配置;
-
通过 CApplication::init() 初始化应用:
- 注册应用行为;
- 载入静态应用组件;
-
触发 onBeginRequest 事件;
-
处理用户请求:
- 解析用户请求;
- 创建控制器;
- 运行控制器;
-
触发 onEndRequest 事件。