Symfony主义事件订阅者未在debug:event-dispatcher中列出

kon*_*dor 6 php event-dispatching symfony doctrine-orm symfony-3.3

Symfony v3.3.4,Doctrine ORM v2.5.6

我已经为一个理论实体创建了一个事件订阅者:

AppBundle\EventListener\LivreSubscriber:
    tags:
        - { name: doctrine.event_subscriber }
Run Code Online (Sandbox Code Playgroud)

它工作正常!但是很长时间以来,我都坚信它没有用,因为在debug:event-dispatcher命令中未列出侦听器:

$ docker-compose exec phpapp bin/console debug:event-dispatcher doctrine.event_subscriber

[WARNING] The event "doctrine.event_subscriber" does not have any registered listeners.
Run Code Online (Sandbox Code Playgroud)

事件监听器是相同的。而且:symfony探查器(“事件”部分)中都未列出侦听器和订户...这样可以正常工作,但是奇怪的是侦听器中没有列出侦听器,不是吗?

你能告诉我你的项目是否有同样的行为吗?

Max*_* P. 6

该订户是教义的订户,而不是symfony。Docctrine使用其自己的事件管理器,该事件管理器未与symfony事件分派器连接。console debug:event-dispatcher仅列出在symfony事件分派器中注册的订户。

  • 这就是我的想法,但我认为这不是很一致,命令应该是 debug:symfony-framework-event-dispatcher 或者应该有一个 debug:doctrine-event-dispatcher 命令:) (3认同)