ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 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)