borschphp/httpmessage

PSR-7 和 PSR-17 的实现。

2.1.0 2024-01-24 21:43 UTC

This package is auto-updated.

Last update: 2024-09-25 19:40:36 UTC


README

简单的 PSR-7 和 PSR-17 实现。
旨在提供一个简单高效的处理 HTTP 请求和响应的方式。

安装

该软件包可以通过 composer 安装。只需运行以下命令

composer require borschphp/httpmessage

用法

PSR-7

该软件包提供了以下 PSR-7 接口的实现

  • Psr\Http\Message\RequestInterface
  • Psr\Http\Message\ResponseInterface
  • Psr\Http\Message\ServerRequestInterface
  • Psr\Http\Message\StreamInterface
  • Psr\Http\Message\UriInterface
  • Psr\Http\Message\UploadedFileInterface

您可以使用该软件包提供的工厂来创建这些类的实例

use Borsch\Http\Factory\{
    RequestFactory,
    ResponseFactory
};

$requestFactory = new RequestFactory();
$request = $requestFactory->createRequest('GET', 'https://example.com');

$responseFactory = new ResponseFactory();
$response = $responseFactory->createResponse(200, 'OK');
$response->getBody()->write('<h1>Hello world !</h1>');

PSR-17

该软件包还提供了以下 PSR-17 接口的工厂

  • Psr\Http\Message\RequestFactoryInterface
  • Psr\Http\Message\ResponseFactoryInterface
  • Psr\Http\Message\ServerRequestFactoryInterface
  • Psr\Http\Message\StreamFactoryInterface
  • Psr\Http\Message\UriFactoryInterface
  • Psr\Http\Message\UploadedFileFactoryInterface

您可以使用这些工厂来创建 PSR-7 类的实例。

自定义响应

该软件包还包括自定义响应类以提高可用性和准备就绪

  • Borsch\Http\Response\EmptyResponse
  • Borsch\Http\Response\TextResponse
  • Borsch\Http\Response\HtmlResponse
  • Borsch\Http\Response\JsonResponse
  • Borsch\Http\Response\XmlResponse
  • Borsch\Http\Response\RedirectResponse

这些类建立在 PSR-7 实现之上,并提供了一种方便创建特定类型响应的方法。例如,您可以使用 JsonResponse 类自动设置 Content-Type 标头为 application/json 并将正文设置为 JSON 编码的数据,而不是手动创建响应并设置正确的标头和内容。

use Borsch\Http\Response\JsonResponse;

$my_json_data = ['foo' => 'bar', 'baz' => 42];

return new JsonResponse($my_json_data);

测试

该软件包包含一组测试(使用 Pest 创建)以确保一切按预期工作。
您可以通过执行以下命令运行测试

./vendor/bin/pest

该软件包还使用了 Infection 来进行突变测试。
有关 Infection 页面 的更多信息。
要运行突变测试,请按文档中的说明安装 infection,然后运行此命令

XDEBUG_MODE=coverage infection

将在项目文件夹中生成基于文本和 HTML 的报告。

许可

该软件包采用 MIT 许可证。有关更多信息,请参阅 许可文件