effectra/http-server-handler

Effectra HTTP 服务器处理程序包。

v2.0.0 2023-06-29 16:06 UTC

This package is auto-updated.

Last update: 2024-09-18 12:54:33 UTC


README

RequestHandler 类设计用于通过处理一系列中间件来处理 HTTP 请求。它通过实现 RequestHandlerInterface 确保与标准化的请求处理协议兼容。

安装

您可以使用 Composer 安装 RequestHandler 类。运行以下命令

composer require effectra/http-server-handler

使用方法

要使用 RequestHandler,请按照以下步骤操作

  1. 创建 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);
  1. 调用 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);
  1. 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 类的开发做出贡献,请按照以下步骤操作

  1. 从仓库中分叉并本地克隆。
  2. 为您的更改创建一个新的分支。
  3. 进行修改和添加。
  4. 编写测试以确保类的功能。
  5. 提交您的更改并将它们推送到您的分叉。
  6. 提交一个详细说明您的更改的 pull request。

许可

本项目采用 MIT 许可