PHP
В этой инструкции описано, как подключить Хоук к PHP-проектам. После настройки вы будете получать уведомления о сбоях вместе со стеком вызовов, данными пользователя и контекстом, которые вы задаёте сами. В среде веб-сервера к событию добавляются HTTP-заголовки (поле Cookie вырезается перед отправкой) и сведения об окружении (в том числе hostname). Это ускоряет отладку и повышает стабильность продукта.
- Зарегистрируйтесь в Hawk и получите интеграционный токен проекта.
- Установите пакет через Composer.
-
Вызовите
как можно раньше в точке входа приложения.Catcher::init -
По желанию задайте
release, свой URL коллектора (url) и другие параметры.
-
PHP
^7.2 || ^8.0 -
Расширения:
ext-curl,ext-json
Отдельного CDN нет — только Composer и PSR-4 автозагрузка.
Кэтчер — синглтон: первый вызов Catcher::init() создаёт экземпляр; повторные вызовы не переконфигурируют кэтчер (второй и далее фактически не меняют уже созданный экземпляр).
init
Минимум:
Допустимы ключи в snake_case: , integration_token, error_types, before_send.
capture_silenced_errors
После init автоматически подключаются:
-
— ошибки PHP;set_error_handler -
— неперехваченные исключения;set_exception_handler -
— фатальные ошибки на завершении скрипта.register_shutdown_function
Доступ к экземпляру:
Без предварительного вызов init приведёт к исключению.
get()
| Параметр | ||
/
|
string
|
Обязательный интеграционный токен |
url
|
string
|
URL коллектора; по умолчанию https://k1.hawk.so/
|
release
|
string
|
Идентификатор релиза / сборки |
/
|
int | null
|
Маска уровней ошибок; = как
|
/ capture_silenced_errors
|
bool
|
Учитывать ошибки с
|
/
|
callable | null
|
См. раздел «Фильтрация» |
timeout
|
int
|
Таймаут HTTP к коллектору (секунды), по умолчанию 2
|
Отдельной опции «отключить глобальные обработчики» нет — при обработчики регистрируются всегда.
init
Исключение:
Вторым аргументом — дополнительный контекст на событие (смержится с глобальным).
Сообщение:
Хук получает .
Hawk\EventPayload
-
Вернуть
— событие не отправляется.null -
Вернуть
— уходит он (в т.ч. после правок через сеттеры).EventPayload -
Иной тип — в лог PHP пишется предупреждение, отправляется исходный payload (см.
).Handler::buildEvent
Пример:
-
Headers — из
/getallheaders(); Cookie удаляются.$_SERVER -
Environment — например
.hostname - Стек — через построитель фреймов и сериализатор.
Поведение «подавленных» ошибок и флага на PHP 8+ отличается от PHP 7 (см. capture_silenced_errorsHandler::handleError). При сомнениях проверьте маску и документацию PHP по errorTypes.
error_reporting()
Вызовите в коде заведомую ошибку после или отправьте исключение вручную через init / sendException и убедитесь, что событие появилось в проекте Hawk.
sendMessage
- Репозиторий: https://github.com/codex-team/hawk.php
- Issues: https://github.com/codex-team/hawk.php/issues
- Packagist: https://packagist.org/packages/codex-team/hawk.php