jowy / routing-middleware
PSR 7 路由中间件
v1.0.1
2015-06-25 08:00 UTC
Requires
- php: >=5.5.0
- doctrine/cache: ^1.4
- jowy/exception-handling-middleware: ^1.0
- nikic/fast-route: ^0.6
- zendframework/zend-diactoros: ^1.1
- zendframework/zend-stratigility: ^1.0
Requires (Dev)
- henrikbjorn/phpspec-code-coverage: ^1.0@dev
- phpspec/phpspec: ^2.2@dev
This package is not auto-updated.
Last update: 2024-09-14 17:53:33 UTC
README
基于 nikic/fast-route 的 PSR 7 路由中间件
安装与要求
使用 composer 安装
$ composer require jowy/routing-middleware
此库有以下依赖
zendframework/zend-diactoros
,用于 PSR 7 实现zendframework/zend-stratigility
,提供 PSR 7 中间件的抽象nikic/fast-route
,用于路由doctrine/cache
,用于缓存路由
使用方法
在 zendframework/zend-stratigility
上的使用
use Zend\Stratigility\MiddlewarePipe; use Jowy\Routing\Routing; $app = new MiddlewarePipe(); $route_middleware = new Routing($options); $app->pipe($route_middleware);
在 relay/relay
上的使用
当使用 relay/relay
时,建议使用容器来解析中间件
use Pimple\Container; use Relay\Relay; use Jowy\Routing\Routing; $container = new Container(); $container["middleware"] = [ Routing::class => function() { return new Routing($options); } ]; $resolver = function ($class) use ($container) { return $container[$class]; } new Relay(array_keys($container["middleware"], $resolver);
选项
所有选项都在数组中,格式为 key => value。
-
collection(可调用或字符串)包含从
RouteCollector
注册的路由[ "collection" => function (RouteCollector $collector) { $collector->addRoute("GET", "/", function (ServerRequestInterface $req, ResponseInterface $res) { return $res; }); $collector->addRoute("GET", "/home", function (ServerRequestInterface $req, ResponseInterface $res) { return $res; }); } ]
可以使用类代替闭包来处理匹配的请求
[ "collection" => function (RouteCollector $collector) { $collector->addRoute("GET", "/", "Fully\\Qualified\\ClassName:yourMethod"); } ]
-
generator(对象)实现
FastRoute\DataGenerator
[ "generator" => new FastRoute\DataGenerator\GroupCountBased(); ]
-
parser(对象)实现
FastRoute\RouteParser
[ "parser" => new FastRoute\RouteParser\Std(); ]
-
dispatcher(可调用)返回实现
FastRoute\Dispatcher
的可调用对象[ "dispatcher" => function ($dispatch_data) { return new FastRoute\Dispatcher\GroupCountBased($dispatch_data); } ]
-
cache(布尔值)切换路由缓存,默认值为 false
[ "cache" => true ]
-
cacheDriver(对象)如果启用
cache
,则需要传递此参数到选项中。它必须包含Doctrine\Common\Cache\Cache
的实现[ "cacheDriver" => new ArrayCache() ]
许可协议
MIT,见 LICENSE