ZF3事件管理器仅适用于EVENT_DISPATCH

时间:2018-08-26 20:01:28

标签: events zend-framework3

在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_reasondisplay_exceptions都设置为TRUE。如果我将EVENT_DISPATCH_ERROR替换为EVENT_DISPATCH(两次EVENT_DISPATCH),则在优先级方面一切正常。

我想念什么?

0 个答案:

没有答案