Php Symfony中的事件侦听器与订阅服务器

Php Symfony中的事件侦听器与订阅服务器,php,symfony,events,Php,Symfony,Events,我从文档中了解到,订阅者已经知道它应该订阅什么,但现在我怀疑,在定义侦听器时,我们是否提供了确切的事件,它应该在什么时候像这样被触发 kernel.listener.my_listener: class: myBundle\EventListener\MyListener arguments: - @doctrine.orm.entity_manager - @twig tags: - { name: kernel.even

我从文档中了解到,订阅者已经知道它应该订阅什么,但现在我怀疑,在定义侦听器时,我们是否提供了确切的事件,它应该在什么时候像这样被触发

kernel.listener.my_listener:
    class: myBundle\EventListener\MyListener
    arguments:
        - @doctrine.orm.entity_manager
        - @twig
    tags:
        - { name: kernel.event_listener, event: kernel.request, method: myMethod}
因此,听众确切地知道什么时候该发火 但如果是订户,我们就这样注册

kernel.listener.my_listener:
    class: myBundle\EventListener\myListener
    arguments: ["@service_container"]
    tags:
    - { name: kernel.event_subscriber }

现在,我的问题是订阅者如何知道何时触发,或者在每个事件上都会触发它呢?

订阅者有一个事件列表——getSubscribedEvents方法。事实上,只有该方法(由需要它的EventSubscriberInterface标记)才定义类是事件订阅者

当编译容器时,它在启动期间被调用,然后根据订阅的事件构建侦听器


订阅服务器有一个事件列表-getSubscribedEvents方法。事实上,只有该方法(由需要它的EventSubscriberInterface标记)才定义类是事件订阅者

当编译容器时,它在启动期间被调用,然后根据订阅的事件构建侦听器


在Symfony编译阶段构建容器时,调用静态方法Subscriber::getSubscribedEvents,并使用结果注册侦听器。在Symfony编译阶段构建容器时,调用静态方法Subscriber::getSubscribedEvents,并使用结果注册侦听器。