array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'intro.yaconf.php', 1 => 'はじめに', ), 'up' => array ( 0 => 'book.yaconf.php', 1 => 'Yaconf', ), 'prev' => array ( 0 => 'book.yaconf.php', 1 => 'Yaconf', ), 'next' => array ( 0 => 'yaconf.setup.php', 1 => 'インストール/設定', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/yaconf/book.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Yet Another Configurations Container
(Yaconf) は、設定コンテナです。
これは INI ファイルをパースし、
PHP の実行が始まるタイミングで結果を格納します。
この結果は、PHP のライフサイクル全体で利用できます。
Yaconf は、全ての設定をインターン化された文字列か、 変更不能な配列として格納します。 つまり、これらの設定はリファレンスカウントの対象にならないため、 Yaconf から設定を取得する際にコピーが発生せず、とても高速です。
Yaconf は、INI ファイル内でセクションやセクションの継承をサポートしています。 PHP が non-ZTS としてビルドされている場合、 Yaconf は INI ファイルが変更された後に、自動的に設定をリロードする機能をサポートしています。
Yaconf を動かすには、PHP 7.0 以降が必要です。
例1 INI ファイルの例
;simple key val key=val ;hash hash.a=val ;array arr.0=val ;or arr[]=val ;use PHP constants version=PHP_VERSION ;use environment env=${PATH}
例2 INI セクションの例
[SectionA] key=val hash.a=val ;SectionB inherits SectionA [SectionB:SectionA] ;override configuration key in SectionA key=new_val