atournayre / exception-handler
1.1.0
2023-04-26 12:50 UTC
Requires
- php: >=8.1
- symfony/event-dispatcher: ^5.4 || ^6.0
- symfony/http-foundation: ^5.4 || ^6.0
- symfony/http-kernel: ^5.4 || ^6.0
- symfony/routing: ^5.4 || ^6.0
This package is auto-updated.
Last update: 2023-12-02 10:04:44 UTC
README
此组件帮助在 Symfony 中处理异常。
它受到文章《使用 Symfony 和自定义 PHP 属性进行集中式异常处理》的启发,作者为 Dejan Angelov。请先阅读!
安装
Composer
composer require atournayre/exception-handler
使用方法
- 在您的应用程序中将
HttpStatusCodeExceptionHandler
定义为监听器。 - 在您的现有/新异常类上声明属性。
- 在控制器中移除(或不要捕获异常)。
- 它工作了!
在您的应用程序中定义 HttpStatusCodeExceptionHandler
为监听器
# config/services.yaml services: Atournayre\Component\ExceptionHandler\Handler\HttpStatusCodeExceptionHandler: tags: - { name: kernel.event_listener, event: kernel.exception }
在您的现有/新异常类上声明属性。
// Example for a NotFound (404) #[NotFound] class OrderNotFound extends Exception { public function __construct(OrderId $id) { parent::__construct( sprintf('The order "%s" could not be found.', (string) $id) ); } }
// Example for a UnprocessableEntity (422) #[UnprocessableEntity] class OrderAlreadyShipped extends Exception { ... }
// Example for a Forbidden (403) #[Forbidden] class CustomerMismatch extends Exception { ... }
贡献
当然,开源是靠每个人的时间和精力来推动的。如果您想看到一个新功能或添加一些您自己的积极评论,太棒了!您可以提出请求——但是创建一个 pull request 是完成工作的更好方式。
无论如何,请放心提交问题或 pull request:所有贡献和问题都深受欢迎 :)