ellipse/dispatcher-callable

Psr-15 中间件分发器工厂解析调用者

1.1.1 2018-03-13 15:11 UTC

This package is auto-updated.

Last update: 2024-08-25 23:23:49 UTC


README

此包为从 ellipse/dispatcher 包中实现的 Ellipse\DispatcherFactoryInterface 提供一个工厂装饰器。它允许使用中间件和请求处理程序作为调用者来生成 Ellipse\Dispatcher 实例。

要求 php >= 7.0

安装 composer require ellipse/dispatcher-callable

运行测试 ./vendor/bin/kahlan

创建一个解析调用者的分发器工厂

此包提供了一个实现 Ellipse\DispatcherFactoryInterfaceEllipse\Dispatcher\CallableResolver 类,它允许装饰实现此接口的任何其他对象。

装饰后,结果分发器工厂可以用来生成 Ellipse\Dispatcher 实例,将调用者解析为从 ellipse/middleware-callable 包中的 Ellipse\Middleware\CallableMiddleware 或从 ellipse/handlers-callable 包中的 Ellipse\Handlers\CallableRequestHandler

CallableMiddlewareCallableRequestHandler 的逻辑在 ellipse/middleware-callableellipse/handlers-callable 文档页面中描述。

<?php

namespace App;

use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;

use Ellipse\DispatcherFactory;
use Ellipse\Dispatcher\CallableResolver;

// Decorate a DispatcherFactoryInterface implementation with a CallableResolver.
$factory = new CallableResolver(new DispatcherFactory);

// This callable acts as a middleware.
$middleware = function (ServerRequestInterface $request, RequestHandlerInterface $handler) {

    // ...

}

// This callable acts as a request handler.
$handler = function (ServerRequestInterface $request) {

    // ...

}

// A dispatcher using both callables and Psr-15 instances can now be created.
$dispatcher = $factory($handler, [$middleware, new SomeMiddleware]);