jhoffland/guzzle-formatter

PHP Guzzle 请求/响应到 HTTP 消息格式化工具

1.5 2022-10-20 17:04 UTC

This package is auto-updated.

Last update: 2024-09-20 21:01:58 UTC


README

Tests status StyleCI status

PHP 库,用于将 Guzzle 请求和响应格式化为 HTTP 消息

安装

Latest stable version Total downloads

使用 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 version Guzzle version

此库已在 PHP 7.4、8.0 和 8.1 上进行了测试。
请检查 composer.json 文件以获取支持的包版本。

请随意为此库添加对其他版本的兼容性。

贡献

请随意为此库做出贡献。通过 GitHub 仓库 分支并打开一个拉取请求来做出贡献。
在打开拉取请求时,请确保以下条件

  • 拉取请求有一个清晰的标题;
  • 拉取请求不包含过多的(不必要的/小的)提交;
  • 通过 StyleCI 分析;
  • PHPUnit 测试通过。

待办事项

  • 添加对向没有路径的 URL 发送请求时格式化请求的测试(例如,向 https://google.com 而不是向 https://google.com/)的测试。
  • 添加使用 HttpFormatterMiddleware 隐藏和未隐藏敏感头的测试。
  • 添加 cURL 格式化器。