effectra / http-server-handler
Effectra HTTP 服务器处理程序包。
v2.0.0
2023-06-29 16:06 UTC
Requires
- psr/http-server-handler: ^1.0
README
RequestHandler
类设计用于通过处理一系列中间件来处理 HTTP 请求。它通过实现 RequestHandlerInterface
确保与标准化的请求处理协议兼容。
安装
您可以使用 Composer 安装 RequestHandler
类。运行以下命令
composer require effectra/http-server-handler
使用方法
要使用 RequestHandler
,请按照以下步骤操作
- 创建
RequestHandler
类的实例,在构造函数中提供一个ResponseInterface
对象和一个可选的中间件数组作为参数。
use Effectra\Http\Server\RequestHandler; use Effectra\Http\Message\Response; // Create a response object $response = new Response(); // Create an array of middlewares $middlewares = [ new YourMiddleware(), // Add more middlewares as needed ]; // Create an instance of RequestHandler $requestHandler = new RequestHandler($response, $middlewares);
- 调用
RequestHandler
类的handle
方法,传递一个表示传入请求的ServerRequestInterface
对象。
use Psr\Http\Message\ServerRequestInterface; // Create a ServerRequestInterface object representing the incoming request $request = ServerRequestInterface::fromGlobals(); // Handle the request $response = $requestHandler->handle($request);
handle
方法将处理中间件堆栈,按照它们添加的顺序执行每个中间件。它将返回一个表示由中间件生成的响应的ResponseInterface
对象。
use Psr\Http\Message\ResponseInterface; // Get the response generated by the middlewares stack echo $response->getBody();
其他方法
getLastRequest
RequestHandler
类提供了一个方便的方法 getLastRequest
来检索最后处理过的请求。它返回一个表示最后请求的 ServerRequestInterface|null
对象,或者如果没有处理过请求,则返回 null
。
use Psr\Http\Message\ServerRequestInterface; // Retrieve the last processed request $lastRequest = $requestHandler->getLastRequest(); if ($lastRequest instanceof ServerRequestInterface) { // Process the last request } else { // No request has been processed yet }
贡献
欢迎贡献!如果您想为 RequestHandler
类的开发做出贡献,请按照以下步骤操作
- 从仓库中分叉并本地克隆。
- 为您的更改创建一个新的分支。
- 进行修改和添加。
- 编写测试以确保类的功能。
- 提交您的更改并将它们推送到您的分叉。
- 提交一个详细说明您的更改的 pull request。
许可
本项目采用 MIT 许可。