空间 / 中介者
简单的PSR-7 PSR-15 http服务器中间件,Spatial(PHP)清洁架构API中不抱希望的中介实现
3.3.3
2022-01-15 20:03 UTC
Requires
- php: ^8.0
- psr/http-server-middleware: ^1.0
- spatial/psr7: ^3.3
README
简单的PSR-7 PSR-15 http服务器中间件,Spatial(PHP)清洁架构API中不抱希望的中介实现。
安装中介者
您应该使用Composer安装中介者 [点击这里]
composer require spatial/mediator
需要PHP 7.1或更高版本。
这个库是Spatial API平台的一部分,使用清洁架构。它用于从控制器中隔离应用逻辑,这样您的应用程序就不再依赖于任何框架。
用法
HTTP请求处理器是任何Web应用程序的基本组成部分。服务器端代码接收请求消息,处理它,并生成响应消息。HTTP中间件是一种将常见的请求和响应处理从应用层移除的方法。
如果满足足够条件,Spatial中介者组件可以创建并返回一个响应,而不需要委托给请求处理器。如果您使用Spatial WebApi框架,请使用 mediator
从控制器到Core\Logic命名空间中的主应用程序进行处理
<?php require '/path/to/vendor/autoload.php'; require 'vendor/autoload.php'; use Core\Logic\Test\GetProduct; use Spatial\Mediator\Mediator; $mediator = new Mediator(); $r = $mediator->process(new GetProduct); // returns a Response // view result echo $r->getBody()->getContent();
这是中间件的PSR-15实现,因此process()
方法至少期望一个参数:请求和(可选地)处理器。如果第二个参数未指定,则使用请求类的命名空间和类名生成处理器。因此Core\Logic\Test\GetProduct
ServerRequestInterface类自动生成一个Core\Logic\Test\GetProductHandler
作为其RequestHandlerInterface。
use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class Mediator implements MiddlewareInterface{ public function process(ServerRequestInterface $request, ?RequestHandlerInterface $handler=null): ResponseInterface { return $handler->handle($request); } }