[英]symfony2 event dispatcher lazy loading listener
我正在使用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項目中對其進行配置。
你可以把它定義為一個懶惰的服務加上相對標簽(如描述這里 )為例:
my.handler:
class: Acme\AcmeBundle\DependencyInjection\MyHandler
lazy: true
arguments:
- @my.dependency
tags:
- { name: kernel.event_listener, event: my.event, method: handle }
請記住按照文檔中的說明安裝ProxyManager橋 。
希望這個幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.