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的风格, 其中 1和3 处理QUERY_STRING, 2, 4和5处理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 的时, 实际响应的控制器是 article 的 index 方法
视图控制中的url()方法会自动设别别名
namespace (1.5.8 +)
配置第三方库命名空间
'namespace' => array(
'abc' => 'lib/abc',
),