我的错误页面在执行过程中从未遇到以下代码。
理解 DesignHandler 在这里并不重要,重要的是当错误发生时,它会正确地路由到错误页面,但永远不会碰到这段代码。
namespace Application;
class Module
{
public function onBootstrap(MvcEvent $e)
{
$events = $e->getApplication()->getEventManager();
$sharedEvents = $events->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
$designHandler = Pluto::app()->getDesignHandler();
$designHandler->pump($e);
}, 20);
}
}
或者(我尝试了 onbootstrap 和 init)
namespace Application;
class Module
{
public function init(\Zend\ModuleManager\ModuleManager $manager)
{
$events = $manager->getEventManager();
$sharedEvents = $events->getSharedManager();
$sharedEvents->attach(__NAMESPACE__, 'dispatch', function($e) {
$designHandler = Pluto::app()->getDesignHandler();
$designHandler->pump($e);
}, 20);
}
}
我不知道如何解决这个问题。我想当一个错误发生时,它会短路路线,这段代码永远不会被击中
更新
我也用两段代码都试过了,但没有成功:
$sharedEvents->attach(__NAMESPACE__, 'dispatch.error', function($e) {
$designHandler = Pluto::app()->getDesignHandler();
$designHandler->pump($e);
}, 20);