caridea / dispatch
一个符合PSR-15规范的中间件调度器的虾
3.0.0
2018-02-11 17:55 UTC
Requires
- php: >=7.1.0
- psr/http-message: ^1.0
- psr/http-server-handler: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- phpunit/phpunit: ^6.0.0
- psr/log: ^1.0
- zendframework/zend-diactoros: ^1.0
Suggests
- psr/log: Allows use of the Reporter middleware
Provides
This package is not auto-updated.
Last update: 2024-09-12 21:41:40 UTC
README
Caridea是一个小巧的PHP应用程序库。当您只需要一些帮助之手而不需要一个完整的框架时,就可以使用这个小巧的家伙。
这是它的符合PSR-7和PSR-15规范请求处理程序,附带一些中间件实现。
安装
您可以使用Composer安装此库
$ composer require caridea/dispatch
- 此项目的master分支(版本3.x)需要PHP 7.1,并依赖于
psr/http-message
、psr/http-server-handler
和psr/http-server-middleware
。
兼容性
此库的版本将遵循语义版本化。
我们的代码旨在遵守PSR-1、PSR-2和PSR-4规范。如果您发现与标准兼容性相关的问题,请发送拉取请求!
文档
示例
一些简单的示例。
运行器
您可以使用Runner
提供一些中间件,并让它处理您的请求。
$request = new \Zend\Diactoros\ServerRequest(); // I generally use zend-diactoros, but feel free to use whatever PSR-7 library you use $middleware = [ // your custom \Psr\Http\Server\MiddlewareInterface objects ]; $runner = new \Caridea\Dispatch\Runner($middleware); $response = $runner->handle($request);
您的最终中间件应该创建并返回一个PSR-7 ResponseInterface
。您也可以将其提供给Runner
构造函数,并自动处理它。
$response = new \Zend\Diactoros\Response(); $runner = new \Caridea\Dispatch\Runner($middleware, $response); $response = $runner->handle($request);
Runner
是不可变的。您可以使用它多次。
$runner = new \Caridea\Dispatch\Runner($middleware); $response1 = $runner->handle($request); $response2 = $runner->handle($request);
优先级运行器
我们包含了对MiddlewareInterface
的扩展:Caridea\Dispatch\Middleware\Prioritized
。使用Caridea\Dispatch\PriorityRunner
,您可以提供无序的中间件,它们将按优先级顺序调用。
$middleware = [ // your custom \Psr\Http\Server\MiddlewareInterface objects. // Any that implement Prioritized will get run in priority order, // Any others get run last, in insert order. ]; $runner = new \Caridea\Dispatch\PriorityRunner($middleware);
您还可以使用Caridea\Dispatch\Middleware\PriorityDelegate
类为现有的中间件实现分配优先级。
$middleware = new \Caridea\Dispatch\Middleware\PriorityDelegate($middleware, 123456);
中间件
我们包含的中间件实现。
报告器
使用Caridea\Dispatch\Middleware\Reporter
捕获Throwable
,记录它们并重新抛出异常。需要PSR-3。
原型
一个简单的中间件,返回您提供的ResponseInterface
。
另请参阅
- 这篇博客文章,作者为Matthew Weier O'Phinney,关于为什么PSR-15放弃了使用匿名函数的旧模式的双遍历中间件。