Блокировка инициализации функционала работы с консолью DoctrineORMModule

Модуль DoctrineORMModule представляет из себя интеграционное решение, позволяющее удобно работать с Doctrine2 в приложениях на ZendFramework2.

DoctrineORMModule предоставляет набор консольных команд для работы с функционалом Doctrine2.

Работа с консолью в DoctrineORMModule выполнена таким образом, что если приложение запускается из консоли, то происходит автоматическое получение сервиса doctrine.entitymanager.orm_default. В случае если для этого сервиса нет корректно настроенного соединения, приложение падает с исключением.

Таким образом, если запустить из-под консоли приложение, которое работает с модулем DoctrineORMModule, то в случае отсутствия корректно работающего соединения с базой данных для doctrine.entitymanager.orm_default приложение работать не будет.

В случае написания тестов возникает проблема, когда используется менеджер сущностей Doctrine2, отличный от orm_default. Для решения проблемы можно воспользоваться \Nnx\ZF2TestToolkit\Listener\StopDoctrineLoadCliPostEventListener, который отключает инициализацию работы с консолью у модуля DoctrineORMModule.

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

Необходимо в конфиг тестового приложения (application.config.php) по аналогии добавить следующие изменения.

use Nnx\ZF2TestToolkit\Listener\StopDoctrineLoadCliPostEventListener;

return [
    'modules'                 => [
        'DoctrineModule',
        'DoctrineORMModule'
    ],
    'module_listener_options' => [

    ],
    'service_manager'         => [
        'invokables' => [
            StopDoctrineLoadCliPostEventListener::class => StopDoctrineLoadCliPostEventListener::class
        ]
    ],
    'listeners'               => [
        StopDoctrineLoadCliPostEventListener::class
    ]
];