ZF2 — Обработка ошибок только для определенного модуля

У меня есть мультимодульное приложение.

И один из его модулей слушает «dispatch.error» с приоритетом 999. И, похоже, ловит ошибки от всех других модулей.

Что мне нужно, это поймать ошибку только в моем конкретном модуле и вести себя соответственно. Это будет работать, если я, например, буду слушать «dispatch.error» с приоритетом 1000 и отфильтровывать ошибки, специфичные для моего модуля (по именам исключений или с использованием фильтрации маршрутов), но нет гарантии, что какой-то другой модуль не будет поставляться с 10000 приоритет для того же события.

Я довольно новичок в ZF2 и не знаю, есть ли правильный способ решить эту проблему.

Похоже, этот вопрос примерно так же: ZF2: как подключить специфичный для модуля приемник для dispatch.error, но ответ совсем не помогает, хотя и принят.

Обновить:
Я узнал, что это можно исправить, изменив DispatchListener.php (при использовании пользовательского идентификатора в SharedEventManager).

DispatchListener получает EventManager как это:

$events  = $application->getEventManager();

Но если контроллер существует, это можно переопределить с помощью:

$events = $controller->getEventManager();

И тогда проблема с обработчиками ошибок для конкретного модуля будет решена.

Кто-нибудь знает решения без исправления основных файлов? И действительно ли это ошибка (этот пользовательский модуль может прослушивать «dispatch», например, но не может слушать «dispatch.error»)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]