База данных конкретного модуля - Zend Framework 2

Используя Zend Framework версии 2, как настроить разные базы данных для разных модулей. Каждый модуль будет иметь доступ к разным базам данных.

'db' => array(
        'driver'         => 'Pdo',
        'dsn'            => 'mysql:dbname=test;host=localhost',
        'driver_options' => array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''),
        'username'       => 'root',
        'password'       => '',
    ),

размещенный выше код в module.config.php для каждого модуля с другим именем БД

заранее спасибо


person adithya    schedule 17.10.2012    source источник


Ответы (1)


Концепция конфигурации модуля на самом деле заключается в том, что модуль предоставляет некоторую конфигурацию для приложения. Предоставленная конфигурация объединяется в одну конфигурацию, поэтому использование одинаковых имен ключей конфигурации приведет к перезаписи этих данных.

Поэтому вместо этого используйте описательные имена — db_user или db_logging и т. д.

Также, вероятно, неплохо взглянуть на фабрики ServiceManager, так как вы можете получить некоторые общие учетные данные базы данных, а затем использовать другое имя базы данных в зависимости от того, какая фабрика используется.

Я лишь слегка затронул базы данных в ZF2, так что, возможно, кто-то другой предложит лучший подход.

person DrBeza    schedule 17.10.2012
comment
Уважаемый DrBeza, я использовал разные имена для db, такие как db1 и db2 для каждого модуля, но он использует только одно, а в других модулях возникают исключения. - person adithya; 17.10.2012