siriusphp / middleware
轻量级中间件实现。1个类,
1.1.0
2016-06-21 11:33 UTC
Requires
- php: >=5.4
- psr/http-message: ^1.0
Requires (Dev)
- phpunit/phpunit: ~4.8
- squizlabs/php_codesniffer: ^2.6
- zendframework/zend-diactoros: ^1.3
Suggests
This package is auto-updated.
Last update: 2024-08-24 04:06:09 UTC
README
常规中间件
$middlewares = array(); $middlewares[] = function(RequestInterface $request, ResponseInterface $response, callable $next = null) { // do your thing return $response; }; $middlewares[] = function(RequestInterface $request, ResponseInterface $response, callable $next = null) { // do your thing return $response; }; $runner = Sirius\Middleware\Runner::factory($middlewares); $response = $runner(Zend\Diactoros\ServerRequestFactory::fromGlobals(), new Zend\Diactoros\Response);
中间件运行器是不可变的,因此添加新中间件会返回一个新的运行器。如果您想手动创建运行器
// this is WRONG!!!!!!!!! $runner = new Sirius\Middleware\Runner; $runner->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) { // do your thing return $response; }); $runner->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) { // do your thing return $response; }); // this is CORRECT $runner = (new Sirius\Middleware\Runner) ->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) { // do your thing return $response; }) ->add(function(RequestInterface $request, ResponseInterface $response, callable $next = null) { // do your thing return $response; });
框架中间件
灵感来源于这篇文章 http://blog.ircmaxell.com/2016/05/all-about-middleware.html
$middlewares = array(); // first middleware in the stack must return an response $middlewares[] = function(RequestInterface $request, callable $next = null) { return new Zend\Diactoros\Response; }; $middlewares[] = function(RequestInterface $request, callable $next = null) { // do your thing return $response; }; $middlewares[] = function(RequestInterface $request, callable $next = null) { // do your thing return $response; }; $runner = Sirius\Middleware\FrameRunner::factory($middlewares); $response = $runner(Zend\Diactoros\ServerRequestFactory::fromGlobals());