1

我的错误页面在执行过程中从未遇到以下代码。

理解 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);
4

0 回答 0