Skip to content
Anton edited this page Sep 28, 2018 · 12 revisions

Описание

с версии 0.5.0 изменилась структура конфигурационных файлов

с версии 0.6.0 изменился способ вызова - теперь только через Proxy, требует инициализацию Application

с версии 7.9.0 в пакете выделен загрузчик, конфиг использует Container

Пакет Config отвечает за загрузку и объединение конфигурационных файлов всей системы.

Работает следующим образом:

  • всегда подгружаются конфигурационные файлы из '/configs/default/'
  • если существует директория текущего окружения ('/configs/'. getenv('BLUZ_ENV')), то данные конфигурации также подгружаются и перетирает значение конфигурации по умолчанию (т.е. фактически происходит мёрж двух массивов)

Пример структуры:

\configs\
  |-- default\
  |   |-- cache.php
  |   |-- db.php
  |   |-- mailer.php
  |   `-- etc.php
  |-- production\
  |   `-- db.php
  |-- testing\
  |   |-- cache.php
  |   `-- mailer.php
  `-- %env%\
     `-- %section%.php

Конфигурация модулей работает следующим образом:

  • всегда подгружается конфигурация модуля из '/modules/%module%/config.php'
  • если в глобальном объединенном конфиге есть секция module.%module% то эти данные мёржаться

Пример структуры:

\modules\
  `-- media
      `-- config.php
\configs\
  |-- default\
  |   `-- module.media.php
  `-- production\
      `-- module.media.php

В данном примере загружается конфигурация media\config.php в неё происходит мерж объединенной конфигурации default\module.media.php + production\module.media.php (при условии окружения production)

Настройки

Для указания подключаемого файла конфигурации в skeleton используется переменная окружения BLUZ_ENV

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

Пакет Config работает только на чтение конфигурации:

Config::get('db'); // >> array(..)
Config::get('db', 'host'); // >> "localhost"

Для чтения конфигурации модулей:

Config::get('module.media'); // >> array(..)
Config::get('module.media', 'upload'); // >> "public/upload"

Методы

Загрузчик конфигов имеет следующие методы:

  • setPath($path) - указывает директорию, в которой находится папка configs
  • setEnvironment($environment) - задаём текущие окружение
  • load() - инициализации - подгружает конфигурации по умолчанию, и объединяет её с конфигурацией окружения

Сам конфиг используется трейты Bluz\Common\Container\Container и Bluz\Common\Container\RegularAccess, изменения внесены лишь в один метод get:

  • get(... $keys) - возвращает текущую конфигурацию системы, полностью, либо указанный узел