Модуль Yet Another Configurations Container
,
или Yaconf, — ещё один контейнер конфигураций,
который разбирает INI
-файлы и сохраняет результат
в PHP при запуске, результат сохраняется на протяжении жизненного цикла PHP.
Yaconf-контейнер сохраняет каждую конфигурацию как встроенную строку или неизменяемый массив. Из-за такого способа хранения параметры конфигурации не участвуют в подсчёте refcount-ссылок, поэтому извлечение конфигурации из модуля Yaconf считают операцией нулевого копирования, или операцией Zero-copy — техника выполнения операций без копирования данных из одной области памяти в другую, которая увеличивает производительность приложений.
Yaconf поддерживает в INI
-файлах разделы и наследование разделов конфигураций.
Модуль Yaconf поддерживает автоматическую перезагрузку конфигураций после изменений INI
-файлов,
если PHP собрали в непотокобезопасном режиме — без поддержки ZTS.
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=new_val ;переопределение параметра key из раздела SectionA