2017-06-15 68 views
-1

在symfony中,服务和事件侦听器都在services.yml中注册。他们注册的方式也非常相似。 那么symfony如何知道哪个是服务定义,哪个是事件监听器。Symfony如何区分服务和事件侦听器

+0

只是想指出的是,它可以创建并没有将其定义为一个服务注册事件侦听器。使用标记系统更方便:https://symfony.com/doc/current/reference/dic_tags.html – Cerad

+0

从链接页面:“例如,如果您有一个**服务,您想注册为Symfony的核心事件之一的监听者**,您可以用kernel.event_listener标记标记它。“ 谢谢,这意味着服务可以是eventlistener也 – tenzin

回答

0

事件监听服务。

这就是说,有一个名为tags部分被用于此目的

tags: 
    - { name: kernel.event_listener, event: [...] } 

这样一个事件监听器被声明为听一个特定事件([...]部分)。

更多here,不要忘记的是,除了听众,也subscribers存在

+0

好吧,这是否意味着。 EventListener是一个服务,在发生在'tags'下定义的特定事件时被调用。 – tenzin

+0

@tenzin是的,基本上就是你说的 – DonCallisto

0

一个事件监听器是一种服务,而不是差异