диспетчер событий symfony2 ленивая загрузка слушателя

Я создаю некоторые из моих собственных событий, используя Symfony Event Dispatcher, который работает отлично.

Однако я заметил, что слушатель, который я настроил в symfony, загружается не лениво, он всегда инициализируется.
Однако он редко используется.

Конфиг в моем services.yml выглядит так:

my.handler:
class: Acme\AcmeBundle\DependencyInjection\MyHandler
arguments:
- @my.dependency
tags:
- { name: kernel.event_listener, event: my.event, method: handle }

Есть ли способ настроить это так, чтобы @ my.handler инициализировался только при возникновении события?
Потому что теперь он инициализируется (вместе со всеми его зависимостями), когда он помещается в Диспетчер.

Есть документация о ContainerAwareEventDispatcher:
http://symfony.com/doc/current/components/event_dispatcher/container_aware_dispatcher.html
Но это только объясняет, как использовать его напрямую в PHP, а не как настраивать его в стандартном проекте symfony2.

2

Решение

Вы можете определить это как Ленивые Услуги добавление относительного тега (как описано Вот ) как пример:

my.handler:
class: Acme\AcmeBundle\DependencyInjection\MyHandler
lazy: true
arguments:
- @my.dependency
tags:
- { name: kernel.event_listener, event: my.event, method: handle }

Не забудьте установить Мост ProxyManager как описано в док.

Надеюсь это поможет

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]