0

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

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 быть настроена так, чтобы настройки адаптеров базы данных сохранялись в пользовательских файлах конфигурации? Как/где установить эти файлы?

ответ

0

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

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

  • В array возвращаемых getConfig() метода модуля
  • config/autoload/*.global.php - глобальная автозагрузка файлов
  • config/autoload/*.local.php - локальные файлы автозагрузка описанные
  • Методов по интерфейсу функции - get*Config()