Понимание системы событий ZF2:

Как и в учебном пособии Энрико Зимуэля " MVC + События + Модули: новая архитектура ZF2", базовая структура событий ZF2 MVC выглядит следующим образом:

ZF2-MVC-потокообразователи события

ZF MVC Auth расширяет и добавляет базовый поток MVC, добавляя к нему четыре события (EVENT_AUTHENTICATION, EVENT_AUTHENTICATION_POST, EVENT_AUTHORIZATION, EVENT_AUTHORIZATION_POST).

Сейчас я читаю документацию Apigility " Расширенная аутентификация и авторизация", которая гласит:

Чтобы добиться интеграции с жизненным циклом ZF2 MVC для аутентификации, zf-mvc-auth провода в 4 слушателя, которые затем распространяют свои собственные события. Каждый из этих слушателей зарегистрирован в рамках мероприятия MvcEvent::EVENT_ROUTE на разные приоритеты.

Два момента для меня неясны:

  • "Каждый из этих слушателей зарегистрирован в рамках мероприятия MvcEvent::EVENT_ROUTE" -" Вложенные события "? Что это значит?

  • "в рамках мероприятия MvcEvent::EVENT_ROUTE с разными приоритетами" - Является ли иерархия приоритетов событий" вложенной "/ не прямой? Является ли она многомерной?

1 ответ

Решение

Вы бы прикрепили слушателей к событиям или к ним; эти слушатели будут упорядочены по приоритету.

Когда событие срабатывает (скажем, событие MvcEvent::EVENT_ROUTE) зарегистрированные слушатели будут исполняться один за другим, начиная с слушателя с самым высоким приоритетом и заканчивая самым низким.

"Вложенные события" или "распространять свои собственные события" были бы тем, где один из этих слушателей запускает другое событие. Примером этого является слушатель для рендеринга,\Zend\View\Http\DefaultRenderingStrategy::render(), где MvcEvent::EVENT_RENDER_ERROR срабатывает при возникновении ошибки рендеринга.

Другие вопросы по тегам