Quber
@Quber
PHP Team lead

Чем отличается EventListener от Subscriber в Symfony2?

1. Чем отличается EventListener от Subscriber в Symfony2 ?
2. Для чего нужен subscriber и где его применять?
3. Зачем надо вызывать EventDispather? Разве не достаточно определить слушателя и event ?
  • Вопрос задан
  • 5255 просмотров
Решения вопроса 1
1. Единственное отличие в том, что Subscriber определяет сразу несколько слушателей.
2. С помощью Subscriber'а удобно подписываться сразу на несколько событий одного класса. Например, Doctrine - можно сразу подписаться на postPersist и postUpdate и зарегистрировать один Subscriber. Если это же делать через Listener, то придется для каждого события создавать свой Listener и отдельно регистрировать его.
3. Если вы зарегистрировали Listener/Subscriber через Service Container, то вызывать EventDispatcher вам не нужно. Если же вы хотите подписываться на события в runtime, то тогда да, вам придется вызывать EventDispatcher.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы