Parable HTTP 是一个直接的请求/响应库

1.0.0 2021-03-12 08:49 UTC

This package is auto-updated.

Last update: 2024-09-12 23:21:00 UTC


README

Workflow Status Latest Stable Version Latest Unstable Version License

Parable Http 是一个用于接收请求和发送响应的极简 Http 库。它不是一个完整实现,只提供足够的函数。

安装

需要 Php 8.0+ 和 composer

$ composer require parable-php/http

使用方法

要从服务器变量自动创建一个 Request 对象,使用

$request = RequestFactory::createFromServer();

要从零开始创建一个 Request,使用

$request = new Request(
    'GET', 
    'http://url.here/path?param=value'
);

要设置一个您想发送给客户端的最小响应

$response = new Response(200, 'This is the body');

然后使用 Dispatcher 发送它

$response = new Response(200, 'This is the body');
$dispatcher = new Dispatcher();

$dispatcher->dispatch($response);

这将发送一个状态码为 200 的响应,其主体设置为在创建 Response 时传递的内容。

API

请求

  • getMethod(): string - 返回 GET、POST 等。
  • getUri(): Uri - 返回表示正在请求的 URI 的 Uri 对象。
  • getRequestUri(): ?string - Uri 的路径。
  • getProtocol(): string - 使用的协议(例如 HTTP/1.1)。
  • getProtocolVersion(): string - 协议的版本部分(例如 1.1)。
  • getBody(): ?string - 请求的正文,如果有的话。
  • getUser(): ?string - 从 URI 中的用户名。
  • getPass(): ?string - 从 URI 中的密码。
  • isHttps(): bool - 是否通过 https 发送请求。这代表基于多次检查的“最佳猜测”。
  • isMethod(string $method): bool - 检查方法是否与 $method 匹配。

来自 HasHeaders 特性

  • getHeader(string $header): ?string - 通过字符串获取单个头,如果不存在则返回 null
  • getHeaders(): string[] - 获取所有头。

响应

  • getBody(): ?string - 要发送的正文。
  • setBody(string $body): void - 将正文设置为字符串。
  • prependBody(string $content): void - 将值预置到正文中。
  • appendBody(string $content): void - 将值附加到正文中。
  • getContentType(): string - 内容类型(例如 text/htmlapplication/json)。
  • setContentType(string $contentType): void - 设置内容类型。
  • getProtocol(): string - 要发送的协议(例如 HTTP/1.1)。
  • getProtocolVersion(): string - 协议版本(例如 1.1)。
  • setProtocol(string $protocol): void - 设置协议。
  • setHeaders(array $headers): void - 设置多个头,重置。
  • addHeaders(array $headers): void - 添加多个头。
  • addHeader(string $header, string $value): void - 添加单个头。

来自 HasHeaders 特性

  • getHeader(string $header): ?string - 通过字符串获取单个头,如果不存在则返回 null
  • getHeaders(): string[] - 获取所有头。

来自 HasStatusCode 特性

  • getStatusCode(): int - 要发送的状态码(例如 200)。
  • getStatusCodeText(): ?string - 要发送的状态码文本(例如 OK)。
  • setStatusCode(int $statusCode): void - 设置状态码。

分发器

  • dispatch(Response $response): void - 分发一个响应,发送所有其内容。
  • dispatchAndTerminate(Response $response, int $exitCode = 0): void - 分发一个响应并终止,即,在之后立即结束程序流程。

贡献

欢迎提出建议、错误报告或一般反馈。请使用 github issues 和 pull requests,或在 devvoh.com 上找到我。

许可证

所有 Parable 组件都是开源软件,许可协议为 MIT。