# \[`√`新技能\] 在`ThinkPHP`中使用`Yaconf`统一定义配置文件 从`V5.1.23+`版本开始,如果你的环境是`PHP7+`,就可以支持使用`Yaconf`统一定义配置(但不支持动态设置),提升配置的读取性能。 >[info] 如果你还不了解什么是`Yaconf`,可以参考这里:[`Yaconf` – 一个高性能的配置管理扩展](http://www.laruence.com/2015/06/12/3051.html)。 只要你的环境安装了`Yaconf`扩展,系统就会默认开启`Yaconf`配置支持。 由于默认Yaconf使用多个配置文件,建议在项目中使用`setYaconf`方法指定`Yaconf`使用的独立配置文件,例如: ~~~ // 建议在应用的公共函数文件中进行设置 think\facade\Config::setYaconf('thinkphp'); ~~~ 设置后,你只需要在`thinkphp.ini`一个文件进行项目的配置,而无需分开多个文件,避免和其它项目冲突(否则你可能需要指定`app.ini`、`cache.ini`等一系列配置文件,而且不能随便更改)。 如果你的项目本地和实际部署的时候采用不同的配置方式,可以在配置文件中,使用`yaconf`助手函数(用法类似`env`函数),本地则使用默认值,而远程服务器采用`Yaconf`方式配置配置参数。 ~~~ return [ 'config_name' => yaconf('config_name', 'default_value'), ]; ~~~ >[danger] 即使你的环境不支持`Yaconf`,也不影响`Yaconf`助手函数的使用,系统会自动判断。 采用`Yaconf`方式配置后,实际项目中获取配置的用法无需做任何的改变。 ``` // 判断配置是否设置 Config::has('cache.type'); // 获取配置参数 Config::get('cache.type'); // 获取某个配置文件 Config::pull('cache'); ``` 如果你需要手动加载某个额外的配置文件,可以使用 ``` Config::load('test', 'test'); ``` 由于,Yaconf不支持动态设置,所以下面的方式不会改变配置参数的值。 ``` Config::set('cache.type', 'File'); ``` >[danger] 事实上,最新的ThinkPHP版本已经不再建议动态修改配置参数了。