Yii系列-02:定制 Web App

应用的行为定制大多在config/main.php中进行,该文件返回key-value数组,用于配置web app的初始状态。

一、将 yii framework 包含在应用目录内

   Yii Based Web Application通过 Yii::createWebApplication创建;默认地,该Yii类包含在Yii Root目录下的framework目录,位于当前Web Application之外。这种配置适合在一个服务器上部署多个基于Yii的应用,Web App均指向这个Yii Root目录,也利于升级。

   当仅有一个Yii Based 应用,或者需要开发用于发布的Web App时,将所有资源统一打包更为用户友好一些。具体步骤为:

    1. YiiRoot/framework目录移入应用的portected目录下,即AppRoot/protected/framework。在 index.php中,require_once(dirname(__FILE__).'protected/framework/yii.php')
    2. 在protected/config/main.php中,修改basepath指向protected目录,该路径需要包含framework的父目录。
    另外,protected目录下有.htaccess,通过其中的deny from all指令屏蔽对该目录的外部访问。


二、定制App名称

    在protected/config/main.php中,修改键name的值,将显示在页面左上方。


三、定制默认首页

    在protected/config/main.php中,修改键defaultController的值为指定的controller,在该 controller中须指定默认action。当request中未明确目的时,采用defaultController/defaultAction 来响应。


四、定制URL模式

    默认url形如 http://youAppRoot/index.php?r=controller/action,该url比较晦涩,可定制为 http://youAppRoot/controller/action。通过定制protected/config/main.php返回的components数组中的urlManager来实现,如下所示。

  1. 'urlManager'=>array(
                'urlFormat'=>'path',
                'rules'=>array(
                ),
                'showScriptName'=>false,
            ),
    1. urlFormat设置path:默认值为get,即在url中通过get参数r来表示请求的资源(/path/to/EntryScript.php?name1=value1&name2=value2...)。path则通过路径形式表示( /path/to/EntryScript.php/name1/value1/name2/value2...)。
    2. showScriptName设置为false:在url 中不出现 入口文件“/index.php”,此时需要设置web 服务器的转发规则,将不能明确资源位置的请求均转发至入口文件。
    3. rules设置了action的参数映射模式,用正则表达式来表示,具体参阅 CUrlManager


五、定制DB

  通过定制protected/config/main.php返回的components数组中的db来实现:

  'db'=>array(

            'emulatePrepare' => true,
            'charset' => 'utf8',
            'connectionString' => 'mysql:host=myDbHost;dbname=myDbName',
            'username' => 'username',
            'password' =>'password',
        ),

  在程序中需要访问DB时,通过Yii::app()->db来获取连接。

posted @ 2013-03-05 13:48  gumreal  阅读(485)  评论(0编辑  收藏  举报