Подписчик событий Symfony Doctrine, не указанный в отладке: диспетчер событий


Symfony v3.3.4, Доктрина ORM v2.5.6

Я создал подписчика событий для сущности доктрины:

AppBundle\EventListener\LivreSubscriber:
    tags:
        - { name: doctrine.event_subscriber }

Это прекрасно работает! Но долгое время я думал, что это не сработало, потому что прослушиватель не указан в команде 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.

То же самое и для прослушивателя событий. А также: ни Слушатель, ни Подписчик не указаны в профилировщике symfony (раздел Событий)... Так что это работает, но странно, что слушатели не указано в инструменте отладки, не так ли?

Можете ли вы сказать мне, ведете ли вы себя так же со своими проектами?..

Author: kondor, 2017-07-27

1 answers

Этот подписчик является подписчиком доктрины, а не symfony. Doctrine использует свой собственный менеджер событий, который не связан с диспетчером событий symfony. console debug:event-dispatcher перечисляет только подписчиков, зарегистрированных в диспетчере событий symfony.

 4
Author: Max P., 2017-07-27 14:32:51