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 应用程序的生命周期