Yaconf是一个高效的PHP配置容器,它在PHP启动的时候把格式为INI的配置文件解析后存储在PHP的常驻内存中,不需要每次请求的时候都来分析配置文件,并在获取配置项的时候“ zero-copy”
Yaconf需要PHP 7.0或更高版本
* [预定义常量](https://www.php.net/manual/zh/yaconf.constants.php)
* [Yaconf](https://www.php.net/manual/zh/class.yaconf.php)—Yaconf类
* [Yaconf::get](https://www.php.net/manual/zh/yaconf.get.php)—检索项
* [Yaconf::has](https://www.php.net/manual/zh/yaconf.has.php)— 确定一个项目是否存在
**为什么要用 yaconf ?**
一般我们项目中是用PHP文件做配置的, 一个config目录下可能有十几个甚至数十个.php配置文件, 里面都是各种各样的array, 这就导致配置文件的解析耗费了很大的性能
扩展下载地址:[http://pecl.php.net/package/yaconf](http://pecl.php.net/package/yaconf)
修改php.ini 配置文件,添加以下扩展
```
extension=php_yaconf.dll
;配置yaconf
[yaconf]
;配置文件的目录位置
yaconf.directory="D:\phpStudy\Yaconf"
;配置文件的更新时间
yaconf.check_delay=60
```
linux安装
~~~
$pecl install yaconf
~~~
或者
```
git clone https://github.com/laruence/yaconf.git
cd yaconf/
phpize
./configure --with-php-config=/usr/local/php-7.2/bin/php-config
sudo vim /usr/local/php-7.2/etc/php.ini ## 添加
extension=yaconf.so
sudo systemctl restart php-fpm.service
```
## **使用**
在目录 **D:\phpStudy\Yaconf**(由yaconf.directory配置) 下新增配置文件 **redis.ini**,内容如下
```
[base]
parent="yaconf"
children="NULL"
[children:base]
children="set"
```
获取配置信息
重启服务器,新建 index.php 文件测试
```
$redis = \Yaconf::get('redis');//参数是文件名
print_r($redis);
```
结果:
```
Array(
[base] => Array(
[parent] => yaconf
[children] => NULL
)
[children] => Array(
[parent] => yaconf
[children] => set
)
)
```