array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), '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' => 'ru', '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, его можно рассматривать как zero-copy очень быстро.
Yaconf поддерживает разделы и наследование разделов в INI-файлах. Если PHP собран без поддержки ZTS, Yaconf также поддерживает автоматическую перезагрузку после изменений INI-файлов.
Yaconf требует PHP 7.0 или выше.
Пример #1 Пример INI
;простая пара ключ-значение key=val ;хеш hash.a=val ;массив arr.0=val ;или так arr[]=val ;использование констант PHP version=PHP_VERSION ;использование переменных среды env=${PATH}
Пример #2 Пример INI с разделами
[SectionA] key=val hash.a=val ;SectionB наследуется от SectionA [SectionB:SectionA] ;переопределение key из раздела SectionA key=new_val