lupferjoel/lumen-chained-exception-handler

Lumen框架的链式异常处理器

4.0.2 2022-03-03 11:21 UTC

This package is auto-updated.

Last update: 2024-09-29 05:50:08 UTC


README

GitHub Actions status Scrutinizer Code Quality Coverage Status Code Climate

此工具允许您在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\ExceptionHandlerBaz\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