这个是继鸟哥出品的yaf,yar 之后的又一个好用的工具. Yaconf配置管理工具
具体可以看鸟哥的文档: https://www.laruence.com/2015/06/12/3051.html
Yaconf的特点:
- 它使用单独的一个配置目录(在yaconf.directory指定), 不和代码在一起.
- 它在PHP启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着PHP的生命周期存亡. 避免了每次请求的时候解析配置文件.
- 所有的配置内容都是immutable的, 这就可以借助于Fork的COW, 降低内存占用, 并且在访问配置的时候, 几乎不需要任何的内存Copy, 也不会有无谓的引用计数增减
- 最重要的, 配置目录和代码分离以后, 可以借助一个配置管理后台, 来实现配置的统一化管理.
- 它支持(对于非ZTS)配置变更重新加载, 也就是说配置如果有变化(建议更改配置一定使用mv, 不要使用cp), 它会reload, 不需要重启(检测的频率由yaconf.check_delay控制).
- 它支持丰富的配置类型, 包括字符串, 数组, 分节, 分节继承, 并且还可以在配置中直接写PHP的常量和环境变量等.
- 最重要的是, 它很简单.
场景: 例如在一个服务下部署着很多的PHP项目, 每个项目都重复的配置着Redis的相关配置, 这个时候 需要重置auth密码, 那你是不是需要到每个项目下都需要改一遍呢?
解决方案:
1.使用Yaconf可以方便的解决这个问题, 可以统一的设置一个全局项目的Redis配置, 这样需要修改的时候 , 只需要修改这个统一的文件就搞定了,YYDS
2.项目接入配置中心,例如Nacos,Apollo等, 然后配置一个项目通用的配置项也是OK的
这里介绍下Yaconf
[安装]
cd /usr/local/src wget https://pecl.php.net/get/yaconf-1.1.2.tgz tar -zxvf yaconf-1.1.2.tgz cd yaconf-1.1.2/ phpize ./configure --with-php-config=/usr/local/php7/bin/php-config make -j 4 make install
[开启扩展]
vim /usr/local/php7/etc/php.ini [Yaconf] extension=yaconf.so # 声明扩展 yaconf.directory=/data/web-conf #conf文件路径 yaconf.check_dalay=60 #心跳检测时间,若为0则不检测,但如果有修改,则需重启PHP
[添加配置]
添加配置项 mkdir -p /data/web-conf vim /data/web-conf/test.ini [parent] parent="base" children="NULL" [children : parent] children="children"
[使用]
var_dump(Yaconf::get("test.foo")); // string(3) "bar" var_dump(Yaconf::get("test.phpversion")); // string(5) "7.4.4" var_dump(Yaconf::get("test.env")); // string(5) "/root"
参考:
标签:get,配置,扩展,yaconf,Yaconf,PHP,children From: https://www.cnblogs.com/xingxia/p/php_ext_yaconf.html