enalquiler/symfony-middleware

基于 PSR-15 的 Symfony 中间件

3.0.0 2018-01-23 21:45 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:15:33 UTC


README

一个简单的 PSR-15 中间件,用于将 Symfony 作为中间件运行。

安装

composer require enalquiler/symfony-middleware

使用

Zend Stratigility 结合使用

Zend Stratigility

<?php

use Zend\Diactoros\Response;
use Zend\Diactoros\Server;
use Zend\Stratigility\MiddlewarePipe;
use Zend\Stratigility\NoopFinalHandler;
use Enalquiler\Middleware\SymfonyMiddleware;

require __DIR__ . '/../vendor/autoload.php';

$app = new MiddlewarePipe();
$app->setResponsePrototype(new Response());

$kernel = new AppKernel('dev', true);

$server = Server::createServer($app, $_SERVER, $_GET, $_POST, $_COOKIE, $_FILES);

$app
    ->pipe(new SymfonyMiddleware($kernel))
    ->pipe('/foo', function ($req, $res, $next) {
        $res->getBody()->write('FOO!');
        return $res;
    })
;

$server->listen(new NoopFinalHandler());

Middleman 结合使用

<?php

use Psr\Http\Message\RequestInterface as Request;
use Zend\Diactoros\Response;
use Zend\Diactoros\ServerRequest;
use mindplay\middleman\Dispatcher;
use Enalquiler\Middleware\SymfonyMiddleware;

$kernel = new AppKernel('dev', true);

$dispatcher = new Dispatcher([
    new SymfonyMiddleware($kernel),
    function (Request $request) {
        return (new Response())->withBody(...); // abort middleware stack and return the response
    },
    // ...
]);

$response = $dispatcher->dispatch(new ServerRequest($_SERVER, $_FILES));

运行测试

php vendor/bin/phpunit

作者

  • David Martínez - 初始工作
  • Christian Soronellas
  • Enalquiler 工程师

查看参与此项目的 贡献者列表

许可证

本项目采用 MIT 许可证 - 请参阅 LICENSE.md 文件获取详细信息。

致谢