Skip to content

A bridge between Symfony middlewares (StackPHP) and http-interop middlewares for converting Symfony Http abstractions to PSR-15 and back.

License

Notifications You must be signed in to change notification settings

thecodingmachine/symfony-psr15-bridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

thecodingmachine/symfony-psr15-bridge

Bridges between Symfony HttpKernel (a.k.a. StackPHP Middleware) and PSR-15 middlewares.

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Build Status Coverage Status

Those adapters are built on top of the existing symfony/psr-http-message-bridge that bridges Symfony and PSR-7 HTTP messages.

Installation

The recommended way to install symfony-psr15-bridge is through Composer:

composer require thecodingmachine/symfony-psr15-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

// Use the Psr15ToSymfonyBridge adapter
$psr15Middleware = new Psr15ToSymfonyBridge($yourHttpKernel);

// Handling PSR-7 requests
$psr7Response = $psr15Middleware->process($psr7Request, $dummyNextPsr7Middleware);

Important: Symfony Http Kernels do not have the notion of "next" middlewares. Therefore, the "next" PSR-7 middleware you pass to the process method will never be called.

Wrapping a PSR-7 callback

<?php

// Use the Psr15ToSymfonyBridge adapter
$symfonyKernel = new SymfonyToPsr15Bridge($nextSymfonyMiddleware, $yourPsr15Middleware);

// Handling Symfony requests
$symfonyResponse = $symfonyKernel->handle($symfonyRequest);

Note: the adapter's constructor takes 2 middlewares: the "next" Symfony middleware that will be called by the "delegate" psr15 feature and the psr15 middleware to be wrapped.

Other known middleware adapters

I initially planned to submit this project as a PR to h4cc/stack-psr7-bridge (that was developed before the notion of "PSR-7 middleware" was standardized in http-interop that was itself the precursor to PSR-15). I soon realized that this was in fact a complete rewrite so I decided to create a new project for it.

About

A bridge between Symfony middlewares (StackPHP) and http-interop middlewares for converting Symfony Http abstractions to PSR-15 and back.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages