enalquiler/symfony-middleware

Symfony Middleware based on PSR-15

3.0.0 2018-01-23 21:45 UTC

This package is not auto-updated.

Last update: 2024-05-12 01:08:48 UTC


README

A dead-simple PSR-15 middleware to run Symfony as a middleware.

Installation

composer require enalquiler/symfony-middleware

Usage

With 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());

With 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));

Running the tests

php vendor/bin/phpunit

Authors

  • David Martínez - Initial work
  • Christian Soronellas
  • Enalquiler Engineering

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments