cloud-castle/error-handler

Обработчик ошибок и исключений для PHP 8.1+: единый перехват ошибок, исключений и фатальных сбоев, рендеринг под окружение (CLI / HTML / JSON) и логирование через PSR-3.

Maintainers

Package info

gitverse.ru/cloud-castle/error-handler

Homepage

Issues

Documentation

pkg:composer/cloud-castle/error-handler

Transparency log

Statistics

Installs: 11

Dependents: 1

Suggesters: 0

v1.0.2 2026-07-29 08:35 UTC

This package is auto-updated.

Last update: 2026-07-30 05:20:26 UTC


README

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

CloudCastle ErrorHandler

CloudCastle ErrorHandler

Packagist Version Downloads PHP Version License

Единая обработка ошибок и исключений: PHP-ошибки → исключения, логирование через PSR-3, безопасный вывод (CLI/JSON/HTML). В боевом режиме детали не раскрываются — защита от утечки внутренней информации.

Установка

composer require cloud-castle/error-handler

Требуется PHP 8.1+. Единственная зависимость — PSR-3 (psr/log).

Быстрый старт

<?php

use CloudCastle\ErrorHandler\ErrorHandler;
use CloudCastle\ErrorHandler\Renderer\JsonRenderer;

// $logger — любая PSR-3 реализация; $debug берётся из окружения (НЕ в проде).
$handler = new ErrorHandler($logger, new JsonRenderer(), debug: false);
$handler->register();

// Теперь любая PHP-ошибка превращается в исключение, необработанные
// исключения и фатальные ошибки — логируются и отдаются как безопасный JSON.

Возможности

  • Единая точкаregister() ставит обработчики ошибок, исключений и завершения работы (фатальные ошибки); PHP-ошибки конвертируются в ErrorException с учётом подавления оператором @.
  • Логирование через PSR-3 — каждое необработанное исключение уходит в LoggerInterface::error() с самим исключением в контексте.
  • Безопасный вывод по режиму — в боевом режиме (debug: false) наружу идёт только обобщённое сообщение; детали (сообщение, файл, строка, трассировка) доступны лишь в отладке. Защита от утечки чувствительных данных.
  • Три представленияCliRenderer (консоль), JsonRenderer (API), HtmlRenderer (браузер, с экранированием — защита от XSS). Свой рендер — через интерфейс Contract\Renderer.

Сравнение с аналогами

Возможностьerror-handlerfilp/whoopssymfony/error-handlermonolog (only log)league/booboonunomaduro/collision
Обработка error+exception+shutdown⚠️⚠️ CLI
PSR-3 логирование из коробки🏆 ✅⚠️
Скрытие деталей в проде🏆 ✅⚠️⚠️
XSS-экранирование HTML⚠️
Runtime-зависимостей🏆 1 (PSR-3)15+12+3+
Форматы вывода (CLI/JSON/HTML)🏆 31 (HTML)221 (CLI)

Когда применять. error-handler уместен как минимальный безопасный обработчик для API и приложений, где важно не раскрывать детали ошибок в проде и писать их в PSR-3. Если нужна богатая интерактивная страница отладки с подсветкой кода и контекстом запроса — берите filp/whoops или symfony/error-handler: это их сильная сторона, здесь она сознательно не воспроизводится.

Разработка

composer install
composer check    # линтеры + статический анализ + тесты
composer fix      # автоисправления (Rector, PHP CS Fixer, PHPCBF)
composer ci       # полный CI-пайплайн локально

Полный список команд с описаниями: composer run-script --list.

Документация

Лицензия

MIT © CloudCastle (alex-4-17@yandex.ru)

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano