Skip to content

petrgrishin/pipe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pipe

Travis CI Coverage Status

Helper in your project for the integration of middleware

Example of use Pipe

<?php
use PetrGrishin\Pipe\Pipe;

// Class name
$accessFiltres = [
    AccessFilterMiddleware::class,
];

// Or class name with constructor arguments
$accessFiltres = [
    [AccessFilterMiddleware::class, $paramMiddleware],
];

// Or closure function
$accessFiltres = [
    function (Request $request, Responce $response, Closure $next) {
        return $next($request, $response);
    }
];

// Start the process
Pipe::create($request, $response)
    ->through($accessFiltres)
    ->through($XSSFiltres)
    ->then(function (Request $request, Responce $response) {
        $response->runController($request);
    });

Example middleware

<?php
class AccessFilterMiddleware {
    protected $paramMiddleware;
    
    public function __construct($paramMiddleware = null) {
        $this->paramMiddleware = $paramMiddleware;
    }

    public function __invoke(Request $request, Responce $response, Closure $next) {
        if ($request->isPost()) {
            $response->addError('Post is forbidden');
            return false;
        }
        return $next($request, $response);
    }
}