jhoffland / guzzle-formatter
PHP Guzzle 请求/响应到 HTTP 消息格式化工具
1.5
2022-10-20 17:04 UTC
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^7.0
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- rector/rector: ^0.14.6
README
PHP 库,用于将 Guzzle 请求和响应格式化为 HTTP 消息。
安装
使用 Composer 直接安装此库
composer require jhoffland/guzzle-formatter
如果此库在生产环境中不需要,请添加 --dev
。
用法
use GuzzleFormatter\RequestFormatter; use GuzzleFormatter\ResponseFormatter; use GuzzleHttp\Client; use GuzzleHttp\Psr7\Request; $request = new Request('GET', 'https://github.com/jhoffland/guzzle-formatter'); echo (new RequestFormatter())->http($request); // Results in the formatted HTTP request message. $response = (new Client())->send($request); echo (new ResponseFormatter())->http($response); // Results in the formatted HTTP response message.
使用中间件
使用 中间件 记录 Guzzle 客户端执行的所有请求和/或接收到的所有响应。
HTTP 请求和/或响应消息将被写入创建 HttpFormatterMiddleware
类实例时指定的文件。
use GuzzleFormatter\Middleware\HttpFormatterMiddleware; use GuzzleHttp\Client; use GuzzleHttp\HandlerStack; $formatterMiddleware = new HttpFormatterMiddleware('/path/to/output-file.txt'); $handlerStack = HandlerStack::create(); $handlerStack->after('prepare_body', $formatterMiddleware->requests(), 'http_request_formatter'); $handlerStack->after('prepare_body', $formatterMiddleware->responses(), 'http_response_formatter'); $client = new Client([ 'handler' => $handlerStack, ]); $client->get('https://github.com/jhoffland/guzzle-formatter');
可用选项
1. 换行符字符
创建 RequestFormatter
& ResponseFormatter
实例时可用。
2. 隐藏敏感头
在用 RequestFormatter
& ResponseFormatter
& 创建 HttpFormatterMiddleware
实例时可用。
被视为敏感的头可以找到在数组 Formatter::SENSITIVE_HEADERS
中。
支持的 PHP & 包版本
此库已在 PHP 7.4、8.0 和 8.1 上进行了测试。
请检查 composer.json
文件以获取支持的包版本。
请随意为此库添加对其他版本的兼容性。
贡献
请随意为此库做出贡献。通过 GitHub 仓库 分支并打开一个拉取请求来做出贡献。
在打开拉取请求时,请确保以下条件
- 拉取请求有一个清晰的标题;
- 拉取请求不包含过多的(不必要的/小的)提交;
- 通过 StyleCI 分析;
- PHPUnit 测试通过。
待办事项
- 添加对向没有路径的 URL 发送请求时格式化请求的测试(例如,向 https://google.com 而不是向 https://google.com/)的测试。
- 添加使用
HttpFormatterMiddleware
隐藏和未隐藏敏感头的测试。 - 添加 cURL 格式化器。