h4cc / stack-psr7-bridge
StackPHP Middleware for converting Symfony Http abstractions to PSR-7 and back.
Requires
- php: >=5.4.0
Requires (Dev)
- phpunit/phpunit: ~4.0
- psr/http-message: ^1.0
- stack/callable-http-kernel: ~1.0
- symfony/http-foundation: ~2.1
- symfony/http-kernel: ~2.1
- symfony/psr-http-message-bridge: ~0.1
- zendframework/zend-diactoros: ~1.0
This package is not auto-updated.
Last update: 2024-11-13 09:58:33 UTC
README
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.
Usage
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.
Wrapping a HttpKernel
<?php $bridge = new Psr7Bridge($yourHttpKernel); // Handling PSR-7 requests $psr7Response = $bridge->__invoke($psr7Request, $psr7Response); // Handling Symfony requests $symfonyResponse = $bridge->_handle($symfonyRequest);
Wrapping a PSR-7 callback
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);
Installation
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.
License
h4cc/stack-psr7-bridge is released under the MIT License. See the bundled LICENSE file for details.