Php 错误操作短路应用程序模块引导代码

Php 错误操作短路应用程序模块引导代码,php,zend-framework,zend-framework2,zend-framework-mvc,zend-framework-routing,Php,Zend Framework,Zend Framework2,Zend Framework Mvc,Zend Framework Routing,我的错误页面在执行过程中从不点击以下代码 理解DesignHandler在这里并不重要,但重要的是当发生错误时,它会正确地路由到错误页面,但不会命中这段代码。 namespace Application; class Module { public function onBootstrap(MvcEvent $e) { $events = $e->getApplication()->getEventManager(); $shar

我的错误页面在执行过程中从不点击以下代码

理解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);
     }
}
或(我在Bootstrap和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);

当你说“它从未命中这段代码”时,你指的是
bootstrap
init
方法,还是试图附加到
dispatch
和/或
dispatch.error
的匿名函数?你触发了什么样的错误?在控制器中使用
onDispatch
不可行?当请求被重新路由到错误页/匿名函数时,我无法获取dispatch和dispatch.error事件中的代码。好啊在您的控制器上使用
onDispatch
方法如何?我更喜欢在更大的全局级别上处理此问题,我认为不应该在控制器内部处理错误路由,对吗?如果调度逻辑特定于该控制器,我不明白为什么不这样做。从您的第一段代码开始,我认为您希望同时附加到常规
dispatch
事件和
dispatch.error
。您是否说“它从未命中这段代码”,您指的是
bootstrap
init
方法,或者连接到您试图附加到
分派
和/或
分派的匿名函数。错误
?你触发了什么样的错误?在控制器中使用
onDispatch
不可行?当请求被重新路由到错误页/匿名函数时,我无法获取dispatch和dispatch.error事件中的代码。好啊在您的控制器上使用
onDispatch
方法如何?我更喜欢在更大的全局级别上处理此问题,我认为不应该在控制器内部处理错误路由,对吗?如果调度逻辑特定于该控制器,我不明白为什么不这样做。从您的第一段代码中,我认为您希望同时附加到常规
调度
事件和
调度。错误