StackPHP Middleware for using Symfony HttpKernel Applications and PSR-7 Application transparent.
This Middleware tries to make using Symfony HttpKernel Application and PSR-7 as easy as possible.
Wrapped applications can be:
- Any Symfony HttpKernel
- Any Callback expecting
function(RequestInterface $request, ResponseInterface $response, $next = null)
It does not matter what kind of application is wrapped, the bridge will convert incoming requests and outgoing responses accordingly to the used interface.
The implementation this middleware is based on is https://github.com/symfony/psr-http-message-bridge.
By default, the Symfony HttpFoundation and HttpKernel are used. For PSR-7, the Zend-Diactoros implementation is used. These implementations can be changed if needed.
<?php
$bridge = new Psr7Bridge($yourHttpKernel);
// Handling PSR-7 requests
$psr7Response = $bridge->__invoke($psr7Request, $psr7Response);
// Handling Symfony requests
$symfonyResponse = $bridge->_handle($symfonyRequest);The expected PSR-7 callback format is not yet defined by PHP-FIG and might be subject to change!
<?php
$psr7Callback = function(RequestInterface $request, ResponseInterface $response, $next = null) {
// Creating a PSR-7 Response here ...
};
$bridge = new Psr7Bridge($psr7Callback);
// Handling PSR-7 requests
$psr7Response = $bridge->__invoke($psr7Request, $psr7Response);
// Handling Symfony requests
$symfonyResponse = $bridge->_handle($symfonyRequest);The recommended way to install stack-psr7-bridge is through Composer:
composer require h4cc/stack-psr7-bridge
Protip: you should browse the h4cc/stack-psr7-bridge
page to choose a stable version to use, avoid the @stable meta constraint.
h4cc/stack-psr7-bridge is released under the MIT License. See the bundled LICENSE file for details.

