Download the PHP package mekras/bedoved without Composer
On this page you can find all versions of the php package mekras/bedoved. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package bedoved
Bedoved
Бедовед — библиотека для перехвата и обработки ошибок, в том числе фатальных.
Позволяет:
- перехватывать и обрабатывать фатальные ошибки;
- превращать ошибки в исключения на основе заданной маски;
- отсылать извещения по почте в случае ошибок или исключений;
- выводить содержимое заданного файла вместо стандартного сообщения об ошибке или исключения;
- выводить подробную отладочную информацию об ошибке.
Пример использования:
Перехват и обработка фатальных ошибок
В PHP нет стандартных методов для перехвата некоторых типов ошибок (например E_PARSE или E_ERROR), однако способ всё же есть — зарегистрировать функцию через ob_start. Не работает в режиме CLI.
Перехват фатальных ошибок с помощью Бедоведа включается вызовом метода enableFatalErrorHandling
.
Есть возможность задать свой собственный обработчик при помощи метода setFatalErrorHandler
.
Превращение ошибок в исключения
Предопределённые действия в случае ошибки
Не обязательно писать собственные обработчики ошибок, можно использовать предопределённые в Бедоведе действия: отправку извещения по почте и показ файла.
Метод setNotifyEmails
позволяет задать список адресов e-mail (одной строкой через запятую), на
которые будут отправляться сообщения об ошибках. В сообщении указывается текст ошибки, место её
возникновения, стек вызовов, запрошенный URI, запрашивающий хост и пользовательский агент. В теме
сообщения указывается доменное имя сайта (из $_SERVER['HTTP_HOST']
) или имя сервера, возвращаемое
php_uname('n')
.
Метод setMessageFile
позволяет задать файл, содержимое которого будет показано в случае
возникновения ошибки.
Режим отладки
В версии 1.2.0 добавлен режим отладки, в котором:
- сообщения по e-mail не отсылаются;
- игнорируется зачение, заданное методом
setMessageFile()
- в браузер выводится подробное описание ошибки.
Чтобы включить режим отладки, надо передать в конструкторе первым аргументом true
:
Замечания
- Встроенный обработчик ошибок всегда записывает в журнал перехваченные ошибки и исключения вызовом функции error_log.
- Если в момент ошибки заголовки HTTP ещё не были отправлены, будет отправлен заголовок с кодом 500.
- Включение перехвата фатальных ошибок отключает HTML-оформление сообщений об ошибках и добавляет к ним уникальный маркер.