表 4.2. Yaf可选配置项
| 名称 | 值类型 | 默认值 | 说明 |
|---|---|---|---|
| application.ext | String | php | PHP脚本的扩展名 |
| application.bootstrap | String | Bootstrapplication.php | Bootstrap路径(绝对路径) |
| application.library | String | application.directory + "/library" | 本地(自身)类库的绝对目录地址 |
| application.baseUri | String | NULL | 在路由中, 需要忽略的路径前缀, 一般不需要设置, Yaf会自动判断. |
| application.dispatcher.defaultModule | String | index | 默认的模块 |
| application.dispatcher.throwException | Bool | True | 在出错的时候, 是否抛出异常 |
| application.dispatcher.catchException | Bool | False | 是否使用默认的异常捕获Controller, 如果开启, 在有未捕获的异常的时候, 控制权会交给ErrorController的errorAction方法, 可以通过$request->getException()获得此异常对象 |
| application.dispatcher.defaultController | String | index | 默认的控制器 |
| application.dispatcher.defaultAction | String | index | 默认的动作 |
| application.view.ext | String | phtml | 视图模板扩展名 |
| application.modules | String | Index | 声明存在的模块名, 请注意, 如果你要定义这个值, 一定要定义Index Module |
| application.system.* | String | * | 通过这个属性, 可以修改yaf的runtime configure, 比如application.system.lowcase_path, 但是请注意只有PHP_INI_ALL的配置项才可以在这里被修改, 此选项从2.2.0开始引入 |
![]() |
注意 |
|---|---|
|
当配置文件变得庞大时, 使用ini配置文件会带来一定的解析开销. 可以考虑使用Yaconf, 它只在PHP启动时把配置目录下的所有ini文件解析一次, 并把解析结果保存在共享内存中. 将
<?php
// in php.ini: yaconf.directory = /path/to/app/conf
$app = new Yaf_Application(Yaconf::get("application"));
?>
含有分节标头的配置文件会按分节暴露为多个条目, 分节之间的继承关系(如[product : yaf])会被自动解析, 可以通过点号获取单个分节, 如Yaconf::get("application.product"). 另外, Yaf的可选配置项不只上表所列, 例如application.library.directory和application.library.namespace 分别用于指定本地类库的目录和声明本地类库的命名空间前缀, application.dispatcher.defaultRoute则用于指定默认的自定义路由, 未指定时使用静态路由. |