Yaconf - php7的配置管理扩展

一 yaconf能干什么

1. 它使用单独的一个配置目录(在yaconf.directory指定), 和代码分离.

2. 它在PHP启动的时候, 处理所有的要处理的配置, 然后这些配置就会常驻内存, 随着PHP的生命周期存亡. 避免了每次请求的时候解析配置文件.

3. 所有的配置内容都是immutable的, 这就可以借助于Fork的COW, 降低内存占用, 并且在访问配置的时候, 几乎不需要任何的内存Copy, 也不会有无谓的引用计数增减

4. 最重要的, 配置目录和代码分离以后, 可以借助一个配置管理后台, 来实现配置的统一化管理.

5. 它支持(对于非ZTS)配置变更重新加载, 也就是说配置如果有变化(建议更改配置一定使用mv, 不要使用cp), 它会reload, 不需要重启(检测的频率由yaconf.check_delay控制).

6. 它支持丰富的配置类型, 包括字符串, 数组, 分节, 分节继承, 并且还可以在配置中直接写PHP的常量和环境变量等.

二 安装 

wget http://pecl.php.net/get/yaconf-1.0.2.tgz

tar zxvf yaconf-1.0.2.tgz

cd yaconf-1.0.2

phpize

./configure --with-php-config=php-config

make && sudo make install

php.ini配置

extension=yaconf.so

yaconf.directory=配置文件目录

yaconf.check_delay=0

(多久(秒)检测一次文件变动, 如果是0就是不检测, 也就是说如果是0的时候, 文件变更只能通过重启PHP重新加载)

三 使用

yaconf的配置文件扩展名为ini文件 比如config.ini

配置内容

line=test

[cheezu]

db=server_shuchuang

[ylc]

db=server_yiliangche

php获取

Yaconf::get(‘config.line’);

Yaconf::get(‘config.cheezu.db’);

Yaconf::get(‘config.ylc.db’);

其中config为config.ini文件的名称

config.ini内容

DBMASTERHOST="127.0.0.1"

DBSLAVEHOST1="127.0.0.1"

DBUSER="server"

DBPASSWD="8492107"

DBPORT="3306"

MEMHOST="c91dcc9308bf11e4.m.cnqdalicm9pub001.ocs.aliyuncs.com"

MEMUSER="c91dcc9308bf11e4"

MEMPASSWD="o2o20131203_"

MEMPORT="11211"

UPYUNBUCKETNAME="shuchuangxinxi"

UPYUNUSER="gaosimeng"

UPYUNPASSWD="womeibaobao"

[YLC]

DBMASTERHOST="127.0.0.1"

DBSLAVEHOST1="127.0.0.1"

DBUSER="server"

DBPASSWD="8492107"

DBPORT="3306"

MEMHOST="c91dcc9308bf11e4.m.cnqdalicm9pub001.ocs.aliyuncs.com"

MEMUSER="c91dcc9308bf11e4"

MEMPASSWD="o2o20131203_"

MEMPORT="11211"

UPYUNBUCKETNAME="yiliangche"

UPYUNUSER="ylcupyun"

UPYUNPASSWD="sDpKaddKSls8sgL"

[auth]

host=http://127.0.0.1:8507

php.ini文件

extension=memcached.so

extension=zip.so

extension=redis.so

extension=ftp.so

extension=yaconf.so

yaconf.directory=/usr/local/php-7.0.4/etc/yaconf

yaconf.check_delay=0

extension=yar.so

extension=msgpack.so

参考文章

http://pecl.php.net/package/yaconf

http://www.laruence.com/2015/06/12/3051.html

时间: 2024-10-31 15:26:58

Yaconf - php7的配置管理扩展的相关文章

yum 安装php7和相关扩展

安装php7和相关扩展 rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm   (nginx) rpm -Uvh http://rpms.famillecollet.com/

windows下php7安装redis扩展

windows下php7安装redis扩展windows下开发用的wamp集成的环境,想装个php-redis扩展.php_redis.dll下载地址:https://pecl.php.net/package/redis 看下自己phpinfo的信息:线程安全版本:Thread Safe:enabledphp版本:PHP Version 7.0.10 根据说明选择对应的版本redis.dll版本 当前环境下就选择7.0 Thread Safe (TS) x64的包下载.将下载解压后的php_re

windows php7 安装 mongodb 扩展

windows php7 安装 mongodb 扩展 确定自己的版本(我的版本是php-7.1.9-Win32-VC14-x64)若不知道可打开phpinfo查看nts(非线程)ts(线程) 注意:86等于32位 下载对应的版本的php_mongodb.dll 文件下载链接:https://pecl.php.net/package/mongodb/1.2.9/windows (按我php版本我选的是php7.1那一栏线程安全类型) (下载需要FQ,如果无法FQ请留言或加QQ:1534147975

Yaconf – 一个高性能的配置管理扩展

鸟哥出品:http://www.laruence.com/2015/06/12/3051.html 首先说说, 这个是干啥的. 我见过很多的项目中, 用PHP文件做配置的, 一个config目录下可能有十几个甚至数十个.php配置文件, 里面都是各种各样的array, 还有甚者会把一些词典文件(比如中文/英文对照)也放到配置中去. 这就导致配置文件的解析耗费了很大的性能(诚然, 用了opcache能好点, 但是实际上还是有执行的过程). 除了PHP的, 还有用json的, yaml的, 一个共同

centos php7 安装mysqli扩展心得

在新配服务器时发现,php无法连接到mysql.通过phpinfo发现.根本没有显示mysqli的相关配置.经过一系列研究.总结了下.: 第一步: 在phpinfo里没有mysqli配置,原因是安装php7时没有configure mysqli 安装php方法:wget http://cn2.php.net/distributions/php-7.1.5.tar.gz tar zxvf php-7.1.5.tar.gz cd php-7.1.5 ./configure --with-php-co

php7安装redis扩展和memcache扩展

安装redis扩展 wget  https://github.com/phpredis/phpredis/archive/php7.zip unzip php7.zip cd phpredis-php7 /usr/local/data/php/bin/phpize ./configure --with-php-config=/usr/local/data/php/bin/php-config make && make install 安装memcache扩展 https://github.

Windows平台下PHP7添加Sqlserver扩展

1.7.0.x 7.0.x的扩展下载地址: Microsoft Drivers for PHP for SQL Server  https://www.microsoft.com/en-us/download/details.aspx?id=20098 ODBC Driver: Microsoft® ODBC Driver 11 for SQL Server® - Windows (支持Sql Server® 2005)  https://www.microsoft.com/zh-CN/down

lnmp环境下php7 安装redis扩展

此处注意:一定是php7版本才可以哦wget https://github.com/edtechd/phpredis 下载redis扩展 unzip phpredis-php7.zip: whereis phpize yum install php-devel /usr/bin/phpize 此处注意php-config,一定要是/usr/local/php/bin/php-config,我就差点被坑死 ./configure --with-php-config=/usr/local/php/b

centos 安装PHP7并且与其他版本共存并且为PHP7安装redis扩展

centos 安装PHP7并且与其他版本共存 wget -c -Ophp-7.1.5.tar.gz http://cn2.php.net/get/php-7.1.5.tar.gz/from/this/mirror tar -xvf php-7.1.5.tar.gz cd php-7.1.5 在安装之前首先要搞定一些依赖,不过有一些依赖我在安装PHP5.6.30的时候都安装过了,还有少数部分依赖没有安装,那么我也给出全新的依赖谁让我们是伸手党,安装过了重新安装也没啥 yum install lib