Yaconf是鸟哥写的一个php拓展.至于简洁的话我就直接摘抄鸟哥写的简介吧

首先说说, 这个是干啥的.

    1. 我见过很多的项目中, 用PHP文件做配置的, 一个config目录下可能有十几个甚至数十个.php配置文件, 里面都是各种各样的array, 还有甚者会把一些词典文件(比如中文/英文对照)也放到配置中去. 这就导致配置文件的解析耗费了很大的性能(诚然, 用了opcache能好点, 但是实际上还是有执行的过程).

    2. 除了PHP的, 还有用json的, yaml的, 一个共同的特点就是这些配置的可读性比较差. 另外, 他们也都要runtime解析.

    3. config目录往往和代码在一起, 首先会有安全隐患(配置中往往有敏感信息), 其次如果配置和代码属于一个项目, 这就会导致配置的修改也要走代码上线的流程.

    4. 一些资源配置文件, 比如mysql/memcache的配置信息, 这些内容本来是应该对开发透明的, 运维直接负责即可. 但是放到了代码中就会导致, 运维如果要发起一些变更, 也要开发配合修改配置文件上线.

    所以, Yaconf就是为了解决这些问题而生的一个工具.

我觉得超级有道理的嘛.大佬的话我当然是觉得牛逼的不得了呀.所以还是使用上了.如果没兴趣的话可以不用往下看咯.


首先安装源码文件

git clone https://github.com/laruence/yaconf.git

下载好后就需要编译安装成php的.so文件拓展啦~
查找phpize,php-config.还是贴图吧.不想再巧一遍命令了
4.png
找到PHP配置文件后到源码目录下进行编译安装
5.png

./configure --with-php-conifg=你的php-config完整路径

6.png

make && make install

然后就安装好了.如果你没安装好自己百度去吧!
编辑php.ini文件,添加

extension=yaconf

假设我们把所有的文件都放在/Users/qvbilam/Sites/ini/目录下.那就在php.ini再追加

yaconf.directory=/Users/qvbilam/Sites/ini/

然后在配置的目录下.如果没有就创建.编写一个测试的配置文件test.ini.注意了是.ini不是.php文件
编写test.ini的内容

host='127.0.0.1'
port=123
a.b.c=1
a.b.e=2

然后我们在php文件中获取配置测试

public function yaconf()
{
    $result = \Yaconf::get('test');
    return $this->writeJson(0,'ok',$result);
}

结果
7.png
我可真棒.当然测试文件中的a.b.c是个二维数组的.只是简单的介绍了安装和获取.至于更多的用法建议看下面传送门的内容

Last modification:February 18th, 2020 at 10:33 pm