# Yaf的配置
## Yaf必要的配置项
Yaf的配置文件放在 基础目录结构的位置是:
/conf/application.ini
> Yaf和用户共用一个配置空间, 也就是在Yaf\_Application初始化时刻给出的配置文件中的配置. 作为区别, Yaf的配置项都以ap开头. Yaf的核心必不可少的配置项只有一个(其实, 这个也可以有默认参数, 但是作者觉得完全没有配置, 显得太寒酸了).
| 名称 | 值类型 | 说明 |
| --- | --- | --- |
| application.directory | String | 应用的绝对目录路径 |
### 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开始引入 |
### 配置文件的读取
(1)通过Yaf\_Application::app()->getConfig()获取:
Yaf\_Application::app()为应用的实例,它返回的一个Yaf\_Config\_Ini的对象
~~~
$config = Yaf\Application::app()->getConfig();
var_dump($config->application->directory);
~~~
(2)通过Yaf\_config\_ini实例获取,将配置文件作为实例化参数实例化Yaf\_Config\_ini,通过Yaf\_Config\_ini来获取
~~~
$config = new Yaf\Config\Ini(APP_PATH.'/conf/application.ini');
var_dump($config->common->application->directory);
~~~
或者:
~~~
$config = new Yaf\Config\Ini(APP_PATH.'/conf/application.ini', 'product');
var_dump($config->application->directory);
~~~
(3)通过对象注册树Yaf\_Registry来获取:当然其实这并不是一种获取配置的方式,这种方式的前提是,在获取获取后存到对象注册树Yaf\_
Registry中才能获取到
~~~
$config = Yaf\Application::app()->getConfig();
Yaf\Registry::set('config', $config);
var_dump(Yaf\Registry::get('config'));
~~~
注:如果觉得使用对象数据不习惯,可以使用toArray方法,将对象转化为数组
更多的Yaf\_Config\_Ini方法可以参考:[http://php.net/manual/zh/class.yaf-config-ini.php](http://php.net/manual/zh/class.yaf-config-ini.php)
- 序言
- 安装 Yaf
- Yaf基础知识
- 1.运行流程
- 2.YAF架构
- 3.目录结构
- 4.Yaf的配置
- 5.Yaf的Bootstrap
- 6.Yaf的多模块配置
- 7.Yaf中使用命名空间
- 本书框架配置
- 1.框架目录结构
- 2.数据库配置
- 3.缓存配置
- 4.全局配置
- 5.公共助手函数
- 请求与响应
- 1.请求-Request
- 2.响应-Response
- 数据库操作
- 使用think-orm
- 接口开发
- 1.RESTful接口设计
- 2.Yar RPC接口设计
- 数据验证
- 数据验证 - validate
- 网页开发
- Session
- Cookie
- 路由设置
- 工具类
- 1.Rsa加密
- 2.Random快速生成随机数
- 3.Cache - 缓存
- 4.Weapp - 微信小程序类
- 5.Qiniu - 七牛云存储使用
- 6.支付类(微信&支付宝)
- 7.Logs - 日志记录