This package provides a Laravel middleware bridge for PSR-15 inspired in jshannon63/laravel-psr15-middleware.
To install, use composer:
composer require softonic/laravel-psr15-bridge
You are ready to use it!
The bridge adapter receive a PSR-15 middleware via injection, so the bridge is transparent for Laravel and you can use it as any other middleware.
Example based on OpenApi Validation Middleware:
Wrapping OpenApi Validation Middleware within the bridge.
// app/Providers/AppServiceProvider.php
use Softonic\Laravel\Middleware\Psr15Bridge\Psr15MiddlewareAdapter;
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->bind(OpenApiValidation::class, function () {
// Setup your PSR-15 middleware here
$validator = new \HKarlstrom\Middleware\OpenApiValidation('schema.json');
// Return it wrapped in the adapter to make Laravel accept it
return Psr15MiddlewareAdapter::adapt($validator);
});
}
Now you can use it anywhere or for example generate an alias.
// app/Http/Kernel.php
protected $routeMiddleware = [
...
'openapi-validation' => OpenApiValidation::class,
];
Check laravel middleware for more information.
In the next diagram you can see the request and response flow.
As you can see, when you execute Psr15MiddlewareAdapter::adapt($validator);
, you are adding an envelop to the PSR-15
middleware that converts the request and response transparently for the middleware format Laravel expects.
softonic/laravel-psr15-bridge
has a PHPUnit test suite and a coding style compliance test suite using PHP CS Fixer.
To run the tests, run the following command from the project folder.
$ docker-compose run test
The Apache 2.0 license. Please see LICENSE for more information.