avalanche-development / crash-pad
0.5.0
2016-12-29 11:49 UTC
Requires
- php: >=5.6.0
- avalanche-development/peel: ^0.3
- guzzlehttp/psr7: ^1.3
- psr/http-message: ^1.0
- psr/log: ^1.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.3
- phpunit/phpunit: ^5.5
This package is not auto-updated.
Last update: 2024-09-15 00:50:25 UTC
README
使用 peel 异常标准化的响应的错误处理程序。
安装
建议您使用 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 许可证授权。有关更多信息,请参阅 许可证文件。