rinsvent / exception-bundle
Exception bundle
v1.0.3
2022-11-04 11:19 UTC
Requires
- php: ^8.0
- ext-ctype: *
- ext-iconv: *
- ext-json: *
- rinsvent/exception: ^1.0
- symfony/config: ^5.3|^6.0
- symfony/dependency-injection: ^5.3|^6.0
- symfony/http-foundation: ^5.3|^6.0
- symfony/http-kernel: ^5.3|^6.0
- symfony/translation: ^5.3|^6.0
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.0.0
- codeception/module-phpbrowser: ^1.0.0
- symfony/routing: ^5.3
This package is auto-updated.
Last update: 2025-04-04 17:01:59 UTC
README
- Бандл интегрирует в симфони библиотеку https://packagist.org/packages/rinsvent/exception
- Концепция использования исключений описана в пакете по ссылке
Дополнения в текущем бандле
- Система перехватывает исключение. Сериализует его и отдает ошибку в json формате
- Автоматически переводит ошибку под текущую locale
Для production
{ "codeText": "access_denied", "code": 300, "message": "Доступ запрещен", "summary": "Access denied" }
Для dev
{ "codeText": "access_denied", "code": 300, "message": "Доступ запрещен", "summary": "Access denied", "system_message": "Native exception message", "trace": "..." }
Зарегистрировать свой Enum со списком исключений можно например так
<?php declare(strict_types=1); namespace App\EventListener; use App\Exception\ExceptionEnum; use Rinsvent\Exception\AbstractException; use Symfony\Component\EventDispatcher\Attribute\AsEventListener; #[AsEventListener(event: 'kernel.request', priority: 1000, method: 'onStart')] class StartConfigListener { public function onStart(): void { AbstractException::$exceptionEnum = ExceptionEnum::class; } }