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
urlskeleton/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时候, 参数部分会被加密, 这个参数控制加密时的keyauth
当在控制中调用$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',
),