Ein Php Persistent Configurations Container
Yaconf ist ein Konfigurationscontainer, das INI -Dateien analysiert und das Ergebnis in PHP speichert, wenn PHP gestartet wird. Konfigurationen leben im gesamten PHP -Lebenszyklus, was es sehr schnell macht.
Yaconf ist eine PECL -Erweiterung, daher können Sie sie einfach installieren, indem Sie:
$pecl install yaconf
Oder Sie können es selbst kompilieren:
$ /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 )Angenommen, wir platzieren alle Konfigurationsdateien in/tmp/yaconf/, also haben wir dies in php.ini hinzugefügt
yaconf.directory=/tmp/yaconf
Angenommen, es gibt zwei Dateien in /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 variablesund Bar.ini
[base]
parent = " yaconf "
children = " NULL "
[children:base] ; inherit from section "base"
children = " set " Lassen Sie uns die Konfigurationen von Yaconf abrufen
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"
}
}
* /Wie Sie sehen können, unterstützt Yaconf String, Map (Array), INI, Env Variable und PHP -Konstanten.
Sie können auch auf Konfigurationen wie folgt zugreifen:
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"Lassen Sie uns nun die Abschnitte und Abschnitte vererben:
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"
}
}
* /Der Kinderabschnitt hat Werte in Basisabschnitten geerbt, und Kinder können die gewünschten Werte außer Kraft setzen.