northwoods/conditional-middleware

Middleware proxy for request condition checks

1.0.0 2018-10-17 14:24 UTC

This package is auto-updated.

Last update: 2021-11-17 21:30:37 UTC


README

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

Middleware proxy that executes a middleware based on request conditions.

Installation

The best way to install and use this package is with composer:

composer require northwoods/conditional-middleware

Usage

use Northwoods\Middleware\ConditionalMiddleware;

/** @var \Psr\Http\Server\MiddlewareInterface */
$actual = /* any existing middleware */

$middleware = new ConditionalMiddleware($actual, function (Request $request): bool {
    return $request->getHeaderLine('accept') === 'application/json';
});

In this example, the wrapped $actual middleware will only be executed if the request accepts the application/json content type.

Condition Callable

The condition callable should use the following signature:

function (Request $request): bool;

The condition must return true (by strict === comparison) for the wrapped middleware to be executed. If the condition check fails the handler will be called immediately.