PHPackages                             enjoys/error-handler - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. enjoys/error-handler

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

enjoys/error-handler
====================

Error Handler

1.0.1(1y ago)02.3k↓44%MITPHPPHP ^8.0CI passing

Since Oct 15Pushed 1y ago1 watchersCompare

[ Source](https://github.com/Enjoyzz/error-handler)[ Packagist](https://packagist.org/packages/enjoys/error-handler)[ RSS](/packages/enjoys-error-handler/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (2)Dependencies (11)Versions (4)Used By (0)

error-handler
=============

[](#error-handler)

Быстрый запуск

```
$exceptionHandler = new \Enjoys\ErrorHandler\ExceptionHandler\ExceptionHandler();
$errorLogger = new \Enjoys\ErrorHandler\ErrorLogger\ErrorLogger(\Psr\Log\LoggerInterface $psr3logger);
$errorHandler = new \Enjoys\ErrorHandler\ErrorHandler($exceptionHandler, $errorLogger);
$errorHandler->register();
```

Настройки и методы ErrorHandler

```
/** @var Enjoys\ErrorHandler\ErrorHandler $errorHandler */

//
$errorHandler->register();

//
$errorHandler->unregister();

// Заменяет всю карту сопоставлений httpStatusCodeMap
$errorHandler->setHttpStatusCodeMap([
    403 => [
        UnAuthorizedException::class
    ],
    404 => [
        ResourceNotFoundException::class,
        NotFoundException::class,
        PageNotFoundException::class
    ]
]);

// Заменяет всю карту сопоставлений loggerTypeMap
$errorHandler->setLoggerTypeMap([
    500 => [
        \Psr\Log\LogLevel::ERROR
    ],
    CriticatlException::class => [
        \Psr\Log\LogLevel::CRITICAL,
        \Psr\Log\LogLevel::EMERGENCY
    ]
]);

//
$errorHandler->setLogContextCallable();

//
$errorHandler->addFatalError(E_WARNING | E_USER_WARNING)

//
$errorHandler->resetFatalErrorLevel()
```

Настройки и методы ExceptionHandler

```
/** @var Enjoys\ErrorHandler\ExceptionHandler\ExceptionHandler $exceptionHandler */

use Enjoys\ErrorHandler\ExceptionHandler\OutputProcessor\Html;
use Enjoys\ErrorHandler\ExceptionHandler\OutputProcessor\Json;
use Enjoys\ErrorHandler\ExceptionHandler\OutputProcessor\Xml;
use Enjoys\ErrorHandler\ExceptionHandler\View\Html\SimpleHtmlErrorViewVeryVerbose;

// Заменяет всю карту сопоставлений outputErrorViewMap
$exceptionHandler->setOutputErrorViewMap([
    Html::class => SimpleHtmlErrorViewVeryVerbose::class,
    Json::class => ImplementationOfErrorViewInterface::class
]);

// Добавляет или заменяет соответсвующее сопоставление в outputErrorViewMap
$exceptionHandler->setOutputErrorView(Xml::class, ImplementationOfErrorViewInterface::class);
```

Настройки и методы ErrorLogger

```
/** @var \Enjoys\ErrorHandler\ErrorLogger\ErrorLogger $logger */

// Устанавливает дефолтный уровень лога, используется если не определено иное (по-умолчанию LogLevel::NOTICE)
$logger->setDefaultLogLevel(\Psr\Log\LogLevel::INFO);

// Переопределяет уровень лога для конкретного типа ошибок
$logger->setLogLevel([E_USER_WARNING, E_WARNING], \Psr\Log\LogLevel::NOTICE);

// Переопределяет формат сообщений в логах
$logger->setLoggerFormatMessage([E_DEPRECATED, E_USER_DEPRECATED], 'Deprecated message: %2$s in %3$s on line %4$s');

// Переопределяет названия каналов, если поддерживается, для конкретного типа ошибок
$logger->setLoggerName([E_DEPRECATED, E_USER_DEPRECATED], 'Deprecation');

// Возвращает \Psr\Log\LoggerInterface
$logger->getPsrLogger();
```

###  Health Score

33

—

LowBetter than 73% of packages

Maintenance45

Moderate activity, may be stable

Popularity20

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

431d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/25447823?v=4)[enjoys](/maintainers/enjoys)[@enjoys](https://github.com/enjoys)

---

Top Contributors

[![Enjoyzz](https://avatars.githubusercontent.com/u/1448659?v=4)](https://github.com/Enjoyzz "Enjoyzz (31 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/enjoys-error-handler/health.svg)

```
[![Health](https://phpackages.com/badges/enjoys-error-handler/health.svg)](https://phpackages.com/packages/enjoys-error-handler)
```

###  Alternatives

[symfony/symfony

The Symfony PHP framework

31.4k86.9M2.2k](/packages/symfony-symfony)[cakephp/cakephp

The CakePHP framework

8.8k19.1M1.7k](/packages/cakephp-cakephp)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k11](/packages/tempest-framework)[typo3/cms

TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.

1.2k1.9M122](/packages/typo3-cms)[typo3/cms-core

TYPO3 CMS Core

3312.9M4.7k](/packages/typo3-cms-core)[pagemachine/typo3-formlog

Form log for TYPO3

23233.9k7](/packages/pagemachine-typo3-formlog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
