2015-10-28 3 views
3

Мне нужно создать прослушиватель или обработчик, чтобы предоставить некоторые действия для AccessDenied exception.Symfony2 Handler против слушателя, какая разница?

Я искал некоторые источники стандартных обработчиков и слушателей, поэтому похоже, что они могут использоваться для одной задачи.

Я также прочитать:

  1. What's the difference between Event Listeners & Handlers in Java?
  2. JavaScript - What's the difference between event handlers & listener?
  3. Using Symfony2's AccessDeniedHandlerInterface

Но только разница, что я видел - что обработчики часто используют для исключения рукояток.

Итак, какова реальная разница между обработчиком и слушателем в Symfony?

+0

Что такое "Symfony2 handler" в первую очередь? – zerkms

+0

@zerkms Я не понимаю вопроса, не могли бы вы пояснить, что вы имеете в виду? –

+0

Откуда у вас этот термин? Что вы имеете в виду, когда говорите «обработчик symfony2»? – zerkms

ответ

5

Listeners Зарегистрировано и вызывается, когда происходит событие. Observer или PubSub используются шаблоны.

Handler является более strategy pattern, который делегирует детали реализации классу. Который может быть заменен. (состав над наследованием)

В некоторых случаях шаблоны могут быть взаимозаменяемыми, и это скорее намерение кода, который вызывает тот или иной.

+1

Важно: symfony2 объявляет объект 'listener' как часть своего диспетчера событий, но термин' handler' официально не определен фреймворком. Поэтому не гарантируется, что то, что вы заявили о «обработчике», верно для всего. – zerkms

+0

idd, в конце концов это просто имя и либо действителен для обоих случаев ... – NDM

+0

После прочтения вашего ответа я до сих пор ничего не понимаю :)) –