空间/中介者

简单的PSR-7 PSR-15 http服务器中间件,Spatial(PHP)清洁架构API中不抱希望的中介实现

3.3.3 2022-01-15 20:03 UTC

This package is auto-updated.

Last update: 2024-09-16 02:04:45 UTC


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);
        }
    }