PHP code example of alexpts / php-simple-middlewares

1. Go to this page and download the library: Download alexpts/php-simple-middlewares library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

alexpts / php-simple-middlewares example snippets


use Psr\Http\Message\ServerRequestInterface;
use PTS\Middleware\MiddlewareManager;

$middlewareManager = new MiddlewareManager();
$middlewareManager->push(function($request, $next){
    /* optionally modify the request */
    $request = $request->...;
	
    /* optionally skip the $next middleware and return early */
    if (...) {
        return $response;
    }
	
    /* optionally invoke the $next middleware and get back a new response */
    $response = $next($request);
	
    /* optionally modify the Response if desired */
    $response = $response->...;
	
    return $response;
});

use Psr\Http\Message\ServerRequestInterface;
use PTS\Middleware\MiddlewareManager;
use PTS\Middleware\MiddlewareInterface;

class MiddlewareA implements MiddlewareInterface
{
    public function __invoke(ServerRequestInterface $request, callable $next)
    {
        $method = $request->getMethod();
        if (method !== 'GET') {
            return new JsonResponse(['status' => 405], 405);
        }

        $response = $next($request);
        /* optionally modify the Response if desired */
        $response = $response->...;

        return $response;
    }
}

class FrontController implements MiddlewareInterface
{
    public function __invoke(ServerRequestInterface $request, callable $next)
    {
        /* ... some work and create response */	
        return $response;
    }
}

$middlewareManager = new MiddlewareManager();
$middlewareManager->push(new MiddlewareA);
$middlewareManager->push(new FrontController);

/* ... PSR-7 $request */
$response = $middlewareManager($request);

$middlewareManager = new MiddlewareManager();
$middlewareManager->push(new MiddlewareA);
$middlewareManager->push(new FrontController, function (\Throwable $ex) {
    return new JsonResponse(['error' => $ex->getMessage()], 500);
});

$response = $middlewareManager($request);
$ composer