Php 错误操作短路应用程序模块引导代码
我的错误页面在执行过程中从不点击以下代码 理解DesignHandler在这里并不重要,但重要的是当发生错误时,它会正确地路由到错误页面,但不会命中这段代码。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
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
方法如何?我更喜欢在更大的全局级别上处理此问题,我认为不应该在控制器内部处理错误路由,对吗?如果调度逻辑特定于该控制器,我不明白为什么不这样做。从您的第一段代码中,我认为您希望同时附加到常规调度
事件和调度。错误
。