CakePHP: как реализовать пользовательский ConsoleErrorHandler

В отношении моего последнего вопроса CakePHP: Пользовательская отчетность об ошибках в командах консоли Я наткнулся на следующую проблему:

Поскольку SentryErrroHandler :: handleError не работает как consoleHandler из коробки, я хотел бы реализовать новый SentryConsoleErrorHandler самостоятельно.

При расширении ConsoleErrorHandler у меня теперь возникает проблема, что методы handleError / handleException класса ConsoleErrorHandler не определены как статические методы.

Итак, в core.php, я создал новый экземпляр SentryConsoleErrorHandler. К сожалению, создать класс плагинов там невозможно. (Не Uncaught exception 'MissingPluginException' with message 'Plugin Sentry could not be found.' )

Вот мой код:

core.php:

 App::uses('SentryErrorHandler', 'Sentry.Lib'); App::uses('SentryConsoleErrorHandler', 'Sentry.Lib'); # <-- $consoleErrorHandler = new SentryConsoleErrorHandler(); # <-- Configure::write('Sentry', array( 'production_only' => true, // true is default value -> no error in sentry when debug 'PHP' => array( 'server' => 'https://XXX:YYY@app.getsentry.com/1234' ) )); Configure::write('Error', array( 'handler' => 'SentryErrorHandler::handleError', 'consoleHandler' => [$consoleErrorHandler, 'handleError'], # <-- 'level' => E_ALL & ~E_DEPRECATED, 'trace' => true )); 

Есть ли какая-то причина, почему ConsoleErrorHandler не имеет статических методов и как можно использовать класс на основе плагинов как ConsoleHandler, когда загружается сам плагин?

Одна вещь, которую я не пробовал, потому что это неправильно: переместите код Configure :: write («Ошибка») после инициализации плагина.