不同于以往工作环境,现在的产品研发流程是:RD开发->QA测试->OP上线部署,每次涉及到变更配置信息的时候都比较麻烦,我们感觉不方便,OP的同事也吐槽很容易忘记或改错了。
借鉴Java研发组的经验,我们PHP相关的项目也将配置信息由文件转换成Zookeeper统一管理,然而问题来了,开发环境的多数同事用的都是Windows环境,而Zookeeper的在Windows下的PHP扩展没有,或者极其难找,一般都需要自己拿编译器自己编译,费时而且门坎较高,想了想,只能通过查询扩展的方式简单变换一下:加载配置信息前先判定PHP有无安装Zookeeper扩展。
对Mac/Linux来讲(参见Mac下安装zookeeper),安装扩展各类开源扩展还是非常方便快捷的,使用php -m|grep zookeeper指令来查看确认一下是否已经安装了zookeeper扩展
判断扩展是否安装的方案:
一、判断所有安装扩展里面是否有对应的扩展
if( in_array('zookeeper',get_loaded_extensions()) )
二、直接判断有无要判断的扩展
if( extension_loaded('zookeeper') )
建议直接采用第二种方案,我的方案如下
if(! extension_loaded('zookeeper') ){
if( empty($_SERVER['PROJECT_CONFIG_ENV_VAR']) ){
die('请手工添加配置文件或配置ZK服务');
} else {
include CONF_PATH.'config_'.$_SERVER['PROJECT_CONFIG_ENV_VAR'].'.php';
}
return array_merge($config,$connect);
}
评论已关闭!