lupferjoel / lumen-chained-exception-handler
Lumen框架的链式异常处理器
4.0.2
2022-03-03 11:21 UTC
Requires
- php: ^7.3 | ^8.0
- illuminate/support: ^7.0 | ^8.0 | ^9.0
Requires (Dev)
- phpunit/phpunit: ^9
README
此工具允许您在Lumen应用程序中将多个异常处理器链接起来。如果您想使用默认异常处理器的渲染能力,但又想使用第三方异常处理器的报告逻辑,这将很有用。报告逻辑通常可以通过添加另一个Monolog处理器来扩展,但所有异常都会被转换成字符串,这并不总是可行的。
安装
运行以下命令通过Composer安装此包:
composer require lupferjoel/lumen-chained-exception-handler
用法
将 bootstrap/app.php
中注册具体异常处理器的 $app->singleton()
调用替换为以下内容:
$app->instance( Illuminate\Contracts\Debug\ExceptionHandler::class, new Nord\Lumen\ChainedExceptionHandler\ChainedExceptionhandler( new App\Exceptions\Handler() ) );
构造函数接受两个参数,一个主异常处理器和可选的二级处理器数组。将对所有处理器调用 report()
方法,但只有主处理器会调用 render()
和 renderForConsole()
方法。
例如,如果您想使用默认的 Laravel\Lumen\Exceptions\Handler
作为主错误处理器,以及 Foo\Bar\ExceptionHandler
和 Baz\ExceptionHandler
作为二级异常处理器,您将使用以下内容:
$app->instance( Illuminate\Contracts\Debug\ExceptionHandler::class, new Nord\Lumen\ChainedExceptionHandler\ChainedExceptionhandler( new Laravel\Lumen\Exceptions\Handler(), [new Foo\Bar\ExceptionHandler(), new Baz\ExceptionHandler()] ) );
运行测试
克隆项目并运行以下命令安装其依赖项:
composer install
运行以下命令来运行测试套件:
vendor/bin/phpunit
许可证
见 LICENSE