Wadah konfigurasi persisten PHP
Yaconf adalah wadah konfigurasi, mem -parsing file INI, menyimpan hasil di PHP ketika PHP dimulai, konfigurasi hidup di seluruh siklus hidup PHP, yang membuatnya sangat cepat.
Yaconf adalah ekstensi PECL, sehingga Anda dapat menginstalnya dengan:
$pecl install yaconf
Atau Anda dapat mengkompilasinya sendiri:
$ /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 )Dengan asumsi kami menempatkan semua file konfigurasi di/tmp/yaconf/, jadi kami menambahkan ini ke dalam php.ini
yaconf.directory=/tmp/yaconf
Dengan asumsi ada dua file di /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 variablesdan bar.ini
[base]
parent = " yaconf "
children = " NULL "
[children:base] ; inherit from section "base"
children = " set " mari kita ambil konfigurasi dari 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"
}
}
* /Seperti yang Anda lihat, YACONF mendukung string, peta (array), INI, Env variable dan konstanta PHP.
Anda juga dapat mengakses konfigurasi seperti ini:
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"Sekarang mari kita lihat bagian dan bagian warisan:
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"
}
}
* /Bagian anak -anak memiliki nilai -nilai yang mewarisi di bagian dasar, dan anak -anak dapat mengesampingkan nilai -nilai yang mereka inginkan.