В пользовательском модуле ZF3 мне нужно перехватить некоторые события.
В module.config.php
функция init()
имеет вид:
public function init(ModuleManager $manager)
{
$eventManager = $manager->getEventManager();
$sharedEventManager = $eventManager->getSharedManager();
$sharedEventManager->attach(__NAMESPACE__, MvcEvent::EVENT_DISPATCH, [$this, 'onDispatch'], 100);
$sharedEventManager->attach(__NAMESPACE__, MvcEvent::EVENT_DISPATCH_ERROR, [$this, 'onDispatchError'], 110);
}
В том же классе естьэто две функции:
public function onDispatch(MvcEvent $event)
{
echo 'testOnDispatch';
die;
}
public function onDispatchError(MvcEvent $event)
{
echo 'testOnDispatchError';
die;
}
Событие EVENT_DISPATCH
запускается без каких-либо проблем, а EVENT_DISPATCH_ERROR
- нет.После некоторых тестов я увидел, что срабатывает только событие EVENT_DISPATCH
.
В конфигурации диспетчера представлений оба значения display_not_found_reason
и display_exceptions
установлены на TRUE
.Если я заменю EVENT_DISPATCH_ERROR
на EVENT_DISPATCH
(дважды EVENT_DISPATCH
), все будет нормально работать в отношении приоритета.
Что я пропустил?