PHP扩展之Yaconf

这个是继鸟哥出品的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"

 

 

 

 

 

 

 

 

 

参考:

 

posted @ 2022-09-18 11:39  X-Wolf  阅读(81)  评论(0编辑  收藏  举报