Как определить альтернативный файл конфигурации адаптера базы данных в Apigility?

В приложении Zend Framework 2, управляемом Apigility, когда создается адаптер базы данных (через пользовательский интерфейс администратора Apigility), его настройки по умолчанию сохраняются в /config/autoload/global.php

return array(
    'db' => array(
        'adapters' => array(
            ...
            'DbAdapter_FooBar' => array(),
            ...
        ),
    ),
    ...
);

и в /config/autoload/local.php

return array(
    'db' => array(
        'adapters' => array(
            ...
            'DbAdapter_FooBar' => array(
                'charset' => 'UTF-8',
                'database' => 'asdf',
                'driver' => 'PDO_Mysql',
                'hostname' => 'asdf',
                'username' => 'asdf',
                'password' => 'asdf',
                'port' => '1234',
                'driver_options' => array(
                    1002 => 'SET NAMES \'UTF8\'',
                ),
            ),
            ...
        ),
    ),
    ...
);

В приложении, над которым я работаю, структура файлов конфигурации отличается от стандарта ZF2, например. для настроек базы данных есть отдельные конфигурационные файлы: /config/autoload/mydb.global.php и /config/autoload/mydb.local.php.

(Как) Можно ли настроить Apigility таким образом, чтобы настройки адаптеров баз данных сохранялись в настраиваемых файлах конфигурации? Как/где установить эти файлы?


person automatix    schedule 26.05.2015    source источник


Ответы (1)


Конфигурация для различных компонентов может быть предоставлена ​​в нескольких местах, но вся конфигурация рекурсивно объединяется в один большой файл конфигурации с помощью метода Zend\Stdlib\ArrayUtils::merge(). Поскольку конфигурации объединяются рекурсивно, порядок их добавления в объединенный массив конфигураций очень важен, чтобы избежать неожиданной перезаписи.

Конфигурации объединяются в следующем порядке:

  • array, возвращаемый методом getConfig() модуля
  • config/autoload/*.global.php — глобальные файлы автозагрузки
  • config/autoload/*.local.php — локальные файлы автозагрузки
  • Методы, описанные в интерфейсе Feature — get*Config()
person Dolly Aswin    schedule 05.09.2015