Перейти к содержимому

ErrorHandler

Класс ErrorHandler — это изолированный инструмент для отлова, форматирования и отправки информации об ошибках. Он работает на уровне всего PHP-процесса, перехватывая не только исключения библиотеки, но и фатальные ошибки движка (например, синтаксические ошибки или нехватку памяти).

Создание экземпляра

Для работы дебаггера необходимо создать его экземпляр, передав токен бота, который будет отправлять отчеты.

php
use ZenithGram\ZenithGram\ErrorHandler;

$debugger = new ErrorHandler("BOT_TOKEN");

Методы класса

register

Активирует глобальный перехват ошибок. После вызова этого метода любые необработанные исключения и фатальные ошибки будут автоматически обрабатываться дебаггером.

php
$debugger->register();

setSendIds

Метод задаёт пользователей или чаты, которым будет отправлена отформатированная информация о возникших ошибках.

#НазваниеТипОписание
1idsint|string|arrayID пользователей/чатов для получения отчетов
php
$debugger->setSendIds(123456789);
$debugger->setSendIds([123456789, 987654321]);

setHandler

Позволяет установить кастомный обработчик. В функцию будет передан объект ZG (даже если ошибка произошла вне контекста апдейта) и само исключение Throwable.

#НазваниеТипОписание
1handlercallableФункция-обработчик: function(ZG $tg, Throwable $e)
php
$debugger->setHandler(function(ZG $tg, Throwable $e) {
    $tg->msg("У нас проблемы: " . $e->getMessage())->send('ADMIN_ID');
});

shortTrace

Настраивает фильтрацию стека вызовов, скрывая мусор из папки vendor.

#НазваниеТипОписание
1enablebooltrue — только ваш код, false — полный стек (по умолчанию).

setTracePathFilter

Скрывает часть пути к файлам в отчете (например, путь к корню проекта).

php
$debugger->setTracePathFilter('/var/www/my-bot/');

Опубликовано под лицензией MIT.