Skip to content

giggsey/laravel-psr15-bridge

 
 

Repository files navigation

Laravel PSR-15 Middleware Bridge

Latest Version Software License Build Status Coverage Status Quality Score Total Downloads

This package provides a Laravel middleware bridge for PSR-15 inspired in jshannon63/laravel-psr15-middleware.

Installation

To install, use composer:

composer require softonic/laravel-psr15-bridge

You are ready to use it!

Usage

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 HKarlstrom\Middleware\OpenApiValidation

/**
 * Register any application services.
 *
 * @return void
 */
public function register()
{
    $this->app->bind(OpenApiValidation::class, function () {
        $validator = new \HKarlstrom\Middleware\OpenApiValidation('schema.json');
    
        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.

How it works

In the next diagram you can see the request and response flow.

psr-15 bridge 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 and the laravel itself.

Testing

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

To run interactively using PsySH:

$ docker-compose run psysh

License

The Apache 2.0 license. Please see LICENSE for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%