app配置文件


每个app的根目录下都有一个名为init.php的文件, 返回一个PHP数组, 这个数组默认分为四个部分

return array(

    /**
     * 系统设置
     */
    'sys' => array(

        /**
         * Http会话认证方式
         * 默认支持 COOKIE 和 SESSION, 也可以指定为自定义的类
         * 如: '\lib\MysqlSession' 或 new \lib\MysqlSession()
         */
        'auth' => 'COOKIE',
        /**
         * 默认的template路径
         */
        'default_tpl_dir' => 'default',
        /**
         * 指定View输出的方法,默认是HTML.
         * 如果值为JSON或XML的时候,会直接调用View中的JSON或XML方法来输出数据
         * 也可以在View中自定义处理方法(比如RSS等)
         */
        'display' => 'HTML'
    ),
    /**
     * uri和auth加解密key
     */
    'encrypt'   =>  array(
        'uri'   =>  '*&9wru&!@#%#&',
        'auth'    =>  '!@#cr@!$!21p#$%^'
    ),
    /**
     * 关于url的配置
     */
    'url' => array(

        /**
         * 默认调用的控制器和方法
         */
        '*' => 'Main:index',
        /**
         * QUERY_STRING 方式
         *  1 简短的url(不包含参数名,需要在方法注释中使用@cp_params key...来手动指定参数的名字)
         *    生成的url类似 /?/controller/action/bar
         *  3 友好的url形式 /?/controller/action/foo/bar...
         * PATH_INFO 方式
         *  2 原生的参数形式: /index.php/controller/action?foo=bar
         *  4 友好的参数形式: /index.php/controller/action/foo/bar...
         *  5 PATH_INFO 下的简短形式
         */
        'type' => 3,
        /**
         * 服务器是否已经开启rewrite支持
         */
        'rewrite' => false,
        /**
         * url请求中的连接字符(controller/action/params)之间的/
         */
        'dot' => '/',
        /**
         * url后缀
         */
        'ext' => ''
    ),
    /**
     * 路由配置
     * 'index' => 'main:index'
     * 为 main->index 指定别名为index
     *
     * 'main:hi' => 'main:index'
     * 为main控制器中的index方法指定别名hi
     * 如果为控制器和方法指定了别名,会自动使用别名
     */
    'router' => array(),	    
    /**
     * 第三方类库的命名空间
     * 命名空间 => PROJECT_PATH的相对路径
     */
    'namespace' => array()
);

sys

app默认配置,用于指定默认模板目录等

  • auth
    在控制中调用$this->auth()时指定默认使用SESSION或COOKIE.

  • default_tpl_dir
    默认模板文件夹路径,可以在控制器中通过以下方法来指定controller项目使用的模板.

    $this->config->set('sys', array('default_tpl_dir'=>'name'))
    
  • display
    视图处理方法, 默认 HTML 使用视图控制器对应的方法来处理, JSON / XML 直接使用视图控制器中的JSON / XML方法来处理数据.

url

为每个app指定独立的url风格

  • *
    指定默认的控制器和方法.

  • type
    指定解析或生成url的风格, 其中 13 处理QUERY_STRING, 2, 45处理PATH_INFO.

  • rewrite
    用来控制生成url是否隐藏url中的 ? 号或索引文件名 (需要web服务器支持).

  • dot
    用来指定生成url路径中的分隔符例如: skeleton/htdocs/web/?/main/index/1/2/3. 这里的dot的值为 /, 如果把dot的值改为 -, 那么重新生成后的url为: skeleton/htdocs/web/?/main-index-1-2-3 dot可以指定为浏览器能识别的任何字符.

  • ext
    用来指定生成url后缀, 假设指定 ext 的值为.html url skeleton/htdocs/web/?/main/index/1/2/3 重新生成的url为 skeleton/htdocs/web/?/main/index/1/2/3.html, 此时会强制检查url后最是否以 .html 结束, 否则会抛出一个找不到该页面的异常.

  • params_dot (1.6.0 +) 指定参数之间的分隔符

encrypt

  • uri 当使用视图控制中的$this->sUrl()生成url时候, 参数部分会被加密, 这个参数控制加密时的key

  • auth 当在控制中调用$this->auth()时, 默认会发送一个加密的cookie到客户端, 这个参数控制加密的key

建议为每个项目设置不同的值

router

配置控制器别名, 以以下配置为例:

'router'    => array(
    'hi'    =>  'main:index',
	'article:page' => 'article:index'
),

当请求的url是 skeleton/htdocs/web/?/hi 的时, 实际响应的是 main 控制器中的 index 方法

当请求的url是 skeleton/htdocs/web/?/article/page 的时, 实际响应的控制器是 articleindex 方法

视图控制中的url()方法会自动设别别名

namespace (1.5.8 +)

配置第三方库命名空间

'namespace'    => array(
    'abc'    =>  'lib/abc',
),