Пакет CONFIG - это набор классов, облегчающих работу с конфигурационными данными.
Класс | Назначение |
---|---|
lmbConf | Класс, который позволяет получает конфигурационные данные из php-файлов, содержащих переменную $conf внутри них. |
lmbIni | Класс, который позволяет получать конфигурационные данные из ini-файлов, немного схожим образом по функциональностью с PHP функцией parse_ini_file(). |
lmbCachedIni | Дочерний класс от lmbIni, которых позволяет кешировать уже отпарсированные данные ini-файлов. |
lmbYaml | Обертка вокруг других классов, работающих с Yaml. |
lmbYamlParser | Класс разбирающий Yaml-файлы. |
lmbYamlDumper | Класс предназначен для экспорта php-массива в Yaml-формат. |
lmbYamlInline | Класс разбирающий/экспортирующий Yaml-данные в однсторочном(inline) формате. |
Для получения объекта Yaml, lmbIni класса или lmbConf класса используется метод тулкита, который предоставляет класс lmbConfTools :: getConf($name). В качестве параметра передается название файла с конфигурационными данными. То, какого класса будет создан объект, зависит от расширения имени файла:
Пример использования:
$conf = lmbToolkit :: instance()->getConf('db.conf.php');//вернется объект lmbConf $ini = lmbToolkit :: instance()->getConf('my.ini');//здесь - lmbIni $yaml = lmbToolkit :: instance()->getConf('bar.yml');//Вернется lmbObject, содержащий конфигурацию из Yaml-файла
Для того чтобы перекрывать часть свойств, не затрагивания оригинальный конфиг, рекомендуется использовать механизм override-файлов. Override-файл - это отдельный файл, свойства которого «накладываются» на оригинальные. Названия файлов зависят от формата конфигурационных файлов (подробности на странице форматов).
То, где искать файлы с настроечными данными, определяется через константу LIMB_CONF_INCLUDE_PATH. Значение этой констранты - список путей через «;» указывающих директории относительно include_path, в которых стоит производить поиск настроечных файлов. По умолчанию «settings;limb/*/settings», то есть в папке settings приложения и всех папках settings пакетов Limb3. Обычно полезно переопределять эту константу в тестах.
Пример использования:
@define('LIMB_INI_INCLUDE_PATH', 'tests/settings;settings');
Подробнее о константах в Limb3
Обсуждение