Skip to content

northwoods/conditional-middleware

Repository files navigation

Northwoods Conditional Middleware

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.