致敬鸟哥
性能
-
我见过很多的项目中, 用PHP文件做配置的, 一个config目录下可能有十几个甚至数十个.php配置文件, 里面都是各种各样的array, 还有甚者会把一些词典文件(比如中文/英文对照)也放到配置中去. 这就导致配置文件的解析耗费了很大的性能(诚然, 用了opcache能好点, 但是实际上还是有执行的过程).
-
除了PHP的, 还有用json的, yaml的, 一个共同的特点就是这些配置的可读性比较差. 另外, 他们也都要runtime解析.
安装
# 下载
git clone https://github.com/laruence/yaconf.git
#安装
#查找phpize
locate
/www/server/php/72/bin/phpize
#使用phpize 生成:configure文件
#配制
./configure --with-php-config=/www/server/php/72/bin/php-config
#编译(必要时使用su命令)
make && make install
Installing shared extensions: /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/
Installing header files: /www/server/php/72/include/php/
#修改php.ini
vim /www/server/php/72/etc/php.ini
#添加
extension = /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/yaconf.so
yaconf.directory=/www/wwwroot/easyswoole.ipuxin.com/ini
#使用
Mac 下安装
pecl install yaconf
Installing '/usr/local/Cellar/[email protected]/7.2.27/include/php/ext/yaconf/php_yaconf.h'
Installing '/usr/local/Cellar/[email protected]/7.2.27/pecl/20170718/yaconf.so'
后记
Pear和Pecl的区别
Pear是PHP的上层扩展,Pecl是PHP的底层扩展
Pear(PHP Extension and Application Repository)由PHP编写的扩展及应用,可include到项目中使用,和composer类似
Pecl(PHP Extension Community Library)由c++编写的PHP扩展库,后缀是.so(shared object),和dll类似