Инструменты пользователя

Инструменты сайта


limb3:ru:packages:config

Пакет CONFIG

Пакет CONFIG - это набор классов, облегчающих работу с конфигурационными данными.

Классы пакета

КлассНазначение
lmbConfКласс, который позволяет получает конфигурационные данные из php-файлов, содержащих переменную $conf внутри них.
lmbIniКласс, который позволяет получать конфигурационные данные из ini-файлов, немного схожим образом по функциональностью с PHP функцией parse_ini_file().
lmbCachedIniДочерний класс от lmbIni, которых позволяет кешировать уже отпарсированные данные ini-файлов.
lmbYamlОбертка вокруг других классов, работающих с Yaml.
lmbYamlParserКласс разбирающий Yaml-файлы.
lmbYamlDumperКласс предназначен для экспорта php-массива в Yaml-формат.
lmbYamlInlineКласс разбирающий/экспортирующий Yaml-данные в однсторочном(inline) формате.

Использование

  • ini-файлы используются в ситуациях, когда формат конфигурационных данных не слишком сложный (простые массивы, линейные свойства), а также нужно обеспечить возможность частичного перекрытия конфигурационных данных на том или ином сервере.
  • conf-файлы используются когда механизм формирования конфигурационных данных весьма сложен и требует выполнения php-кода, завит от каких-либо условий. Хотя в последнее время мы постепенно пришли к использования .conf файлов во всех случаях - для унификации.
  • yml-файлы используются для удобства записи объемных конфигураций с большой вложенностью. Возможно включение PHP-кода в yml-файлы. Несколько подробнее о yaml.

Для получения объекта Yaml, lmbIni класса или lmbConf класса используется метод тулкита, который предоставляет класс lmbConfTools :: getConf($name). В качестве параметра передается название файла с конфигурационными данными. То, какого класса будет создан объект, зависит от расширения имени файла:

  • .conf.php - lmbConf
  • .ini - lmbIni (вернее lmbCachedIni в большинстве случаев).
  • .yml - lmbIni (вернее lmbCachedIni в большинстве случаев).

Пример использования:

  $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-файлов. Override-файл - это отдельный файл, свойства которого «накладываются» на оригинальные. Названия файлов зависят от формата конфигурационных файлов (подробности на странице форматов).

Где осуществляется поиск файлов с конфигурационными данными?

То, где искать файлы с настроечными данными, определяется через константу LIMB_CONF_INCLUDE_PATH. Значение этой констранты - список путей через «;» указывающих директории относительно include_path, в которых стоит производить поиск настроечных файлов. По умолчанию «settings;limb/*/settings», то есть в папке settings приложения и всех папках settings пакетов Limb3. Обычно полезно переопределять эту константу в тестах.

Пример использования:

@define('LIMB_INI_INCLUDE_PATH', 'tests/settings;settings');

Подробнее о константах в Limb3

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ____   __ __   ____   _  __   ____
  / __/  / //_/  / __/  / |/ /  / __/
 / _/   / ,<    / _/   /    /  / _/  
/___/  /_/|_|  /_/    /_/|_/  /___/
 
limb3/ru/packages/config.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)