31
05月
2020
Yaconf的优势
它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起.
它在PHP启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着PHP的生命周期存亡. 避免了每次请求的时候解析配置文件,提高执行效率.
所有的配置内容都是immutable的, 这就可以借助于Fork的COW, 降低内存占用, 并且在访问配置的时候, 几乎不需要任何的内存Copy, 也不会有无谓的引用计数增减
最重要的, 配置目录和代码分离以后, 可以借助一个配置管理后台, 来实现配置的统一化管理.
它支持(对于非ZTS)配置变更重新加载, 也就是说配置如果有变化(建议更改配置一定使用mv, 不要使用cp), 它会reload, 不需要重启(检测的频率由yaconf.check_delay控制).
它支持丰富的配置类型, 包括字符串, 数组, 分节, 分节继承, 并且还可以在配置中直接写PHP的常量和环境变量等.
安装
git clone https://github.com/laruence/yaconf.git cd yaconf /usr/bin/phpize7.0 #我是将phpize安装到了该位置 就用你自己安装的位置就行 ./configure --with-php-config=/usr/bin/php-config #后边写你自己php-config所在的位置 make -j && make install
php.ini 添加扩展
extension=yaconf.so yaconf.directory=/www/html/tp5/ini #写你自己创建的文件夹路径 yaconf.check_delay=100 #心跳检查时间,若为0则不检查,但如果有修改,需重启PHP
重启php服务
service php7.0-fpm restart service nginx restart
在tp5中使用
由于默认Yaconf使用多个配置文件,建议在项目中使用setYaconf方法指定Yaconf使用的独立配置文件,例如
建议在应用的公共函数文件中进行设置 common.php
/application/common.php
think\facade\Config::setYaconf('thinkphp');
在需要使用的地方
\Config::yaconf('name') 或 \Yaconf('name') // 即可获取配置参数的值