ellipse / dispatcher-container
Psr-15 中间件分发器工厂,从 Psr-11 容器解析类名
1.1.1
2018-03-13 15:15 UTC
Requires
- php: >=7.0
- ellipse/dispatcher: ^1.6
- ellipse/handlers-container: ^1.0
- ellipse/middleware-container: ^1.0
- psr/container: ^1.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- eloquent/phony-kahlan: ^1.0
- kahlan/kahlan: ^4.0
README
此包为从 ellipse/dispatcher 包实现的 Ellipse\DispatcherFactoryInterface
提供工厂装饰器。它允许使用中间件和请求处理类名来生成 Ellipse\Dispatcher
实例。
要求 php >= 7.0
安装 composer require ellipse/dispatcher-container
运行测试 ./vendor/bin/kahlan
创建一个解析 Psr-15 类名的分发器工厂
此包提供了一个实现 Ellipse\DispatcherFactoryInterface
的 Ellipse\Dispatcher\ContainerResolver
类,允许装饰实现此接口的任何其他对象。
它接受一个实现 Psr\Container\ContainerInterface
的容器作为第一个参数,以及要装饰的工厂作为第二个参数。
一旦装饰,生成的分发器工厂可以使用中间件的类名 Ellipse\Middleware\ContainerMiddleware
(来自 ellipse/middleware-container 包)和请求处理类名 Ellipse\Handlers\ContainerRequestHandler
(来自 ellipse/handlers-container 包)来生成 Ellipse\Dispatcher
实例。
ContainerMiddleware
和 ContainerRequestHandler
的逻辑在 ellipse/middleware-container 和 ellipse/handlers-container 文档页面中描述。
<?php namespace App; use SomePsr11Container; use Ellipse\DispatcherFactory; use Ellipse\Dispatcher\ContainerResolver; // Get some Psr-11 container. $container = new SomePsr11Container; // Decorate a DispatcherFactoryInterface implementation with a ContainerResolver. $factory = new ContainerResolver($container, new DispatcherFactory); // A dispatcher using both class names and Psr-15 instances can now be created. $dispatcher = $factory(SomeRequestHandler::class, [SomeMiddleware1::class, new SomeMiddleware2]);