0.5.0 2016-12-29 11:49 UTC

This package is not auto-updated.

Last update: 2024-09-15 00:50:25 UTC


README

使用 peel 异常标准化的响应的错误处理程序。

Build Status Code Climate Test Coverage

安装

建议您使用 Composer 来安装 crash-pad。

$ composer require avalanche-development/crash-pad

crash-pad 需要 PHP 5.6 或更高版本。

用法

此处理程序与 peel 一起使用效果最佳。它也可以不使用它工作,但如果没有 HttpErrorInterface 异常,所有响应都将默认为 500 服务器错误。

根据您使用的框架,可以通过几种不同的方式连接。在 Slim 中,您可以将它附加到 Slim\Container。我将偏袒地展示 Talus。

$talus = new Talus([...]);
$talus->setErrorHandler(new AvalancheDevelopment\CrashPad\ErrorHandler);

这将监听跳出调用堆栈的异常并返回适当的响应。例如,如果您有一些像这样的中间件...

function someMiddleware($request, $response, $next) {
    $body = (string) $request->getBody();
    $body = json_decode($value);
    if (json_last_error() !== JSON_ERROR_NONE) {
        throw new AvalancheDevelopment\Peel\HttpError\BadRequest('Invalid JSON');
    }
    // etc
}

错误处理程序将检测 AvalancheDevelopment\Peel\HttpErrorInterface 异常并返回如下响应...

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Invalid JSON"
}

所有响应都将包含这三个字段,以及适当的头信息。任何未实现 HttpErrorEnterface 的异常将响应默认的 500。

开发

此库正在积极开发中。一些错误响应可能会包含未来的元数据。

测试

要执行测试套件,您需要 phpunit(以及安装带有开发依赖项的包)。

$ phpunit

许可证

crash-pad 根据 MIT 许可证授权。有关更多信息,请参阅 许可证文件