yaconf
1.0.0
PHP持續配置容器
YACONF是一個配置容器,它解析INI文件,將結果存儲在PHP時將結果存儲在PHP中,配置生存在整個PHP生命週期中,這使其非常快。
Yaconf是PECL擴展名,因此您可以通過以下方式安裝它。
$pecl install yaconf
或者您可以通過自己的自我編譯:
$ /path/to/php7/bin/phpize
$ ./configure --with-php-config=/path/to/php7/bin/php-config
$ make && make install
Path to directory which all ini configuration files are placed in
In which interval Yaconf will detect ini file's change(by directory's mtime),
if it is set to zero, you have to restart php to reloading configurations.
mixed Yaconf:: get (string $ name , mixed $ default = NULL )
bool Yaconf:: has (string $ name )假設我們將所有配置文件放在/tmp/yaconf/中,因此我們將其添加到php.ini中
yaconf.directory=/tmp/yaconf
假設 /tmp /yaconf中有兩個文件
foo.ini
name = " yaconf " ; string
year =2015 ; number
features[]= " fast " ; map
features.1 = " light "
features.plus = " zero-copy "
features.constant =PHP_VERSION ; PHP constants
features.env =${HOME} ; Enviorment variables和bar.ini
[base]
parent = " yaconf "
children = " NULL "
[children:base] ; inherit from section "base"
children = " set " 讓我們從yaconf檢索配置
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"
}
}
* /如您所見,Yaconf支持字符串,MAP(數組),INI,ENV變量和PHP常數。
您還可以訪問這樣的配置:
php7 -r ' var_dump (Yaconf:: get ( " foo.name " )); '
//string(6) "yaconf"
php7 -r ' var_dump (Yaconf:: get ( " foo.features.1 " )); '
//string(5) "light"
php7 -r ' var_dump (Yaconf:: get ( " foo.features " )[ " plus " ]);'
//string(9) "zero-copy"現在讓我們看看各節和部分的繼承:
php7 -r ' var_dump(Yaconf::get("bar")); '
/ *
array ( 2 ) {
[ "base" ] = >
array ( 2 ) {
[ "parent" ] = >
string ( 6 ) "yaconf"
[ "children" ] = >
string ( 4 ) "NULL"
}
[ "children" ] = >
array ( 2 ) {
[ "parent" ] = >
string ( 6 ) "yaconf"
[ "children" ] = >
string ( 3 ) "set"
}
}
* /兒童部分在基本部分中具有繼承的價值,並且兒童能夠覆蓋所需的價值。