Плагин WP Error Notifier с кодовым названием «Енот» (только т-с-с!) отлавливает ошибки и исключения, которые не обработали в PHP-коде вручную. Плагин умеет обнаруживать баги, в каком бы месте скрипта они не возникли.
Перехват ошибок JavaScript-кода в браузере клиента, который отдельно включается в настройках плагина, дополняет функции мониторинга ошибок в PHP-коде и превращает плагин WP Error Notifier в инструмент комплексного отслеживания ошибок на сайте.
Механизм перехвата и обработки ошибок
Плагин регистрирует набор обработчиков, которые помогают перехватывать ошибки всех уровней.
Отдельный обработчик перехватывает ошибки уровня уведомления E_*NOTICE, предупреждения E_*WARNING и фатальной ошибки E_*ERROR, включая ошибки пользовательского уровня наподобие E_USER_WARNING.
Дополнительно плагин регистрирует обработчик исключений для перехвата критических ошибок подтипа Exception наподобие исключений InvalidArgumentException или UnexpectedValueException, которые не обработали вручную. Обработчик исключений обнаружит ошибку, даже если она возникла в неожиданном месте кода: в файле functions.php, в вашем или стороннем плагине, теме или даже файлах ядра WordPress. WP Error Notifier перехватывает 100 % исключений, которые не обработали в блоке try-catch
.
При критических ошибках PHP завершает работу скриптов и работа сайта завершается. При этом каждая операция, которая выполнялась в момент сбоя, тоже завершается. Действия, которые выполняются на сервере после точки сбоя, — не выполняются, включая обработку заказов, взаимодействие с базой данных, уведомлений пользователей и другие операции. Часто при таких сбоя пользователь видит белый экран и остается наедине с ошибкой.
Кроме обработчиков ошибок и исключений, плагин регистрирует обработчик события shutdown — завершение работы потока выполнения PHP-кода. Событие shutdown наступает как при нормальной работе кода, так и при ошибках. Плагин WP Error Notifier не выполняет действий, когда скрипты завершают работу нормально, но «вклинивание» в поток выполнения кода на последнем этапе, перед самым завершением работы скриптов, помогает плагину получить и обработать последнюю ошибку. Этот механизм гарантирует перехват и обработку каждой ошибки, которая возникла в коде.
WP Error Notifier уважает другие обработчики и возвращает управление обработкой ошибок и исключений сразу после логирования и отправки уведомления об ошибке владельцу сайта, если только не обнаружил ошибку на этапе завершения скрипта, когда другая обработка становится бессмысленной.
Ранняя загрузка
После активации плагин WP Error Notifier создает Must-Use-плагин, который загружает сам плагин WP Error Notifier на ранней стадии загрузки ядра WordPress, еще до загрузки других плагинов, тем, шаблонов или других частей сайта.
За счет ранней загрузки плагина и первоочередной регистрации обработчиков ошибок и исключений плагин начинает мониторинг ошибок фактически сразу после обращения к сайту.
Это краткий, но важный для знакомства с механизмом обработки ошибок плагином WP Error Notifier абзац.