ZF2 - 仅针对特定模块的错误处理

时间:2018-03-30 10:05:37

标签: php error-handling zend-framework2 zend-framework-modules

我有一个多模块化的应用程序。

其中一个模块以999优先级侦听“dispatch.error”。它似乎可以捕获所有其他模块的错误。

我需要的是仅在我的特定模块中捕获错误 并且表现得恰当。例如,如果我将以1000优先级监听“dispatch.error”并过滤掉我的模块特有的错误(通过异常名称或使用路由过滤),它将起作用,但是不能保证某些其他模块不会带有10000同一事件的优先权。

我对ZF2很陌生,不知道是否有正确的解决方法。

看起来这个问题大致相同:ZF2: How to attach module specific listener for dispatch.error,但是虽然被接受,但回复根本没有帮助。

更新 我发现,可以通过更改DispatchListener.php(在SharedEventManager中使用自定义ID时)修复此问题。

DispatchListener得到EventManager,如下所示:

$events  = $application->getEventManager();

但如果控制器存在,则可以用以下方式覆盖:

$events = $controller->getEventManager();

然后解决模块特定错误处理程序的问题。

有没有人知道没有修复核心文件的解决方案?它实际上是一个错误(例如,自定义模块可以监听“调度”,但不能听“dispatch.error”)

0 个答案:

没有答案