PHP高性能的配置管理扩展Yaconf

53 篇文章 3 订阅

简介

Yaconf 是一个高性能的配置管理扩展,是由PHP核心开发者鸟哥惠新宸发布的 PHP7 下的扩展应用。主要目标是简化读取项目配置文件, 使配置文件和项目代码分离,增强了配置文件的可读性和可维护性。

据 Yaconf 开发者惠新宸在其博客上说,这个项目是其在来微博以后, 第一个优化项目中顺手做的一个小工具, 本身叫做Weibo_Conf. 但是因为 Weibo_Conf 是属于 Weibo 扩展的, 里面还有一些其他功能是专门为 Weibo 定制的. 所以不适合直接开源.随着 PHP7 的发布, 新增了很多持久化类型的支持比如 IS_IMMUTABLE_ARRAY , 于是就在 PHP7 下重新开发了 Yaconf , 开源出来, 方便大家使用。

鸟哥已经将其放在GitHub上:https://github.com/laruence/yaconf

安装

直接使用PECL安装扩展

$pecl install yaconf

也可以编译安装

$ /path/to/php7/bin/phpize
$ ./configure --with-php-config=/path/to/php7/bin/php-config
$ make && make install

PHP7.3安装错误

/tmp/pear/temp/yaconf/yaconf.c: 在函数‘php_yaconf_hash_init’中:
/tmp/pear/temp/yaconf/yaconf.c:90:15: 错误:赋值运算的左操作数必须是左值
  GC_FLAGS(ht) |= IS_ARRAY_IMMUTABLE;
               ^
/tmp/pear/temp/yaconf/yaconf.c:91:15: 错误:赋值运算的左操作数必须是左值
  GC_FLAGS(ht) |= HASH_FLAG_STATIC_KEYS;
               ^
/tmp/pear/temp/yaconf/yaconf.c:95:19: 错误:‘HASH_FLAG_APPLY_PROTECTION’未声明(在此函数内第一次使用)
  GC_FLAGS(ht) &= ~HASH_FLAG_APPLY_PROTECTION;
                   ^
/tmp/pear/temp/yaconf/yaconf.c:95:19: 附注:每个未声明的标识符在其出现的函数内只报告一次
/tmp/pear/temp/yaconf/yaconf.c:98:18: 错误:赋值运算的左操作数必须是左值
  GC_REFCOUNT(ht) = 2;
                  ^
/tmp/pear/temp/yaconf/yaconf.c:103:23: 错误:‘IS_TYPE_COPYABLE’未声明(在此函数内第一次使用)
  Z_TYPE_FLAGS_P(zv) = IS_TYPE_COPYABLE;
                       ^
/tmp/pear/temp/yaconf/yaconf.c: 在函数‘php_yaconf_str_persistent’中:
/tmp/pear/temp/yaconf/yaconf.c:149:16: 错误:赋值运算的左操作数必须是左值
  GC_FLAGS(key) |= IS_STR_INTERNED | IS_STR_PERMANENT;
                ^
/tmp/pear/temp/yaconf/yaconf.c: 在函数‘php_yaconf_zval_persistent’中:
/tmp/pear/temp/yaconf/yaconf.c:171:8: 错误:‘IS_CONSTANT’未声明(在此函数内第一次使用)
   case IS_CONSTANT:
        ^
make: *** [yaconf.lo] 错误 1
ERROR: `make' failed
处理办法:

下载github的master,重新编译安装即可

配置php.ini

添加一下内容:

extension=yaconf

yaconf.directory="/mnt/wwwroot/myproject/yaconf"
yaconf.check_delay=60

重启php即可

使用

在目录添加foo.ini

name="yaconf"
year=2015
features[]="fast"
features.1="light"
features.plus="zero-copy"
features.constant=PHP_VERSION
features.env=${HOME}

获取文件配置

php7 -r 'var_dump(Yaconf::get("foo"));'
/*
array(3) {
  ["name"]=>
  string(6) "yaconf"
  ["year"]=>
  string(4) "2015"
  ["features"]=>
  array(5) {
    [0]=>
    string(4) "fast"
    [1]=>
    string(5) "light"
    ["plus"]=>
    string(9) "zero-copy"
    ["constant"]=>
    string(9) "7.0.0-dev"
	["env"] =>
	string(16) "/home/huixinchen"
  }
}
*/

直接指定配置项

php7 -r 'var_dump(Yaconf::get("foo.name"));'
//string(6) "yaconf"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值