1. 应用配置
   应用由入口脚本创建为一个单例对象。这个应用单例对象可以在任何地方通过Yii::app()访问。
    应用是一个 CWebApplication的实例。要自定义它,我们通常需要提供一个配置文件 (或数组) 以创建应用实例时初始化其属性值。自定义应用的另一种方式是继承 CWebApplication。
    配置是一个键值对数组。每个键代表应用实例中某属性的名字,每个值即相应属性的初始值。
    通常在一个单独的PHP 脚本(e.g.protected/config/main.php)中保存这些配置。在脚本中, 我们通过以下方式返回此配置数组:return array (...);要应用此配置,我们将配置文件的名字作为参数传递给应用的构造器,或像下面这样传递到 Yii::createWebApplication() 。这通常在 入口脚本中完成:$app=Yii::createWebApplication($configFile);
(如果应用配置非常复杂,我们可以把它分割为若干文件,每个文件返回配置数组中的一部分。 然后,在主配置文件中,我们调用PHP的include()包含其余的配置文件并把它们合并为一个完整的配置数组。)

    2.应用基础目录
    应用基础目录指包含了所有安全敏感的PHP脚本和数据的根目录。在默认情况下,它是一个位于含有入口脚本目录的名为 protected 的子目录。它可以通过设置 application configuration 中的 basePath 属性自定义。
    在应用基础目录下的内容应该保护起来防止网站访客直接访问。对于 Apache HTTP 服务器, 这可以通过在基础目录中放置一个.htaccess 文件很简单的实现。 .htaccess 内容如下:deny from all(这一点我觉得很重要!)

    3.应用组件
    应用的功能可以通过其灵活的组件结构轻易地自定义或增强。应用管理了一系列应用组件,每个组件实现一特定功能。 例如,应用通过 CUrlManager 和 CHttpRequest 的帮助解析来自用户的请求。通过配置应用的 components 属性, 我们可以自定义应用中用到的任何组件类及其属性值。要访问一个应用组件,使用 Yii::app()->ComponentID ,其中的 ComponentID 是指组件的ID(例如 Yii::app()->cache)。应用的组件可以通过在其配置中设置 enabled 为 false 禁用。当我们访问被禁用的组件时将返回 Null。(默认情况下,应用组件会按需创建。这意味着一个应用的组件如果没有在一个用户请求中被访问,它可能根本不被创建。 因此,如果一个应用配置了很多组件,其总体性能可能并不会下降。有的应用组件 (例如 CLogRouter) 可能需要在无论它们是否被访问的情况下都要被创建。 要实现这个,需将其ID列在应用的 preload属性里。)