0

Я потратил немного времени, пытаясь проследить путь через код и документацию ZF2, но я не могу найти объяснения способа расширения конфигурации с помощью глобальной конфигурации для экземпляр Zend\Service\AbstractPluginManager, когда он был зарегистрирован как сервис-менеджер с прослушивателем службы.Конфигурирование Zend Framework 2 AbstractPluginManager

Обзор классов я создал:

  • AssetManager\AssetFilterPluginManager: расширяет AbstractPluginManager

  • AssetManager\Service\AssetFilterManagerFactory: Фабрика простирающийся Zend\Mvc\Service\AbstractPluginManagerFactory с const PLUGIN_MANAGER_CLASS набор для "AssetManager\AssetFilterManagerFactory"

  • AssetManager\AssetFilterProviderInterface: Модуль функциональный интерфейс

В config/module.config.php я настроил слушателя службы следующим образом:

'service_listener_options' => array(
    array(
     'service_manager' => 'AssetFilterManager', 
     'config_key'  => 'asset_filters', 
     'interface'  => 'AssetManager\AssetFilterProviderInterface', 
     'method'   => 'getAssetFilterConfig', 
    ), 
), 

Служба диспетчера конфигурации содержит определение AssetFilterManager:

'service_manager' => array(
    'factories' => array(
     'AssetFilterManager' => 'AssetManager\Service\AssetFilterManagerFactory', 
    ), 
), 

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

Моя цель - расширение подключаемого сервисного менеджера, которое функционирует так же, как и встроенные плагины контроллера Zend, и просматривать вспомогательные менеджеры. Если есть кто-либо с большим опытом использования этих функций, кроме меня, я был бы признателен за любое понимание.

ответ

0

Вы не можете настроить прослушиватель служб в config/module.config.php, service_listener_options является частью config/application.config.php. Эта конфигурация считывается перед инициализацией модулей. См. Рабочий пример here. Вы должны настроить прослушиватель службы в своем Module.php