0

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

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

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

我对 ZF2 很陌生,不知道是否有合适的方法来解决这个问题。

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

更新: 我发现它可以通过更改来修复DispatchListener.php(在使用自定义 ID 时SharedEventManager)。

DispatchListener变成EventManager这样:

$events  = $application->getEventManager();

但是如果控制器存在,这可以被覆盖:

$events = $controller->getEventManager();

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

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

4

0 回答 0