Symfony 如何区分服务和事件监听器

How does Symfony differentiate services and event listeners

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

事件侦听器是一项服务,而不是区别

EventListener 一项服务。

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

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

以这种方式声明事件侦听器以侦听特定事件([...] 部分)。

阅读更多here and don't forget that, other than listeners, also subscribers存在