parable-php / http
Parable HTTP 是一个直接的请求/响应库
1.0.0
2021-03-12 08:49 UTC
Requires
- php: >=8.0
- ext-mbstring: *
- ralouphie/getallheaders: ^3.0
Requires (Dev)
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^4.6
README
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/html
,application/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。