janderson/tiny-stack

A tiny middleware stack dispatcher

Maintainers

Package info

github.com/jdpanderson/tiny-stack

pkg:composer/janderson/tiny-stack

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1 2026-03-30 02:21 UTC

This package is auto-updated.

Last update: 2026-04-30 02:38:30 UTC


README

A tiny middleware stack dispatcher for PHP.

Installation

composer require janderson/tiny-stack

Usage

Middlewares must implement a function signature compatible with:

function(callable $next, array &$envelope, mixed ...$args): mixed

A minimal example:

use function Janderson\TinyStack\stack;

$trim  = fn($next, &$envelope, $input) => $next(trim($input));
$upper = fn($next, &$envelope, $input) => $next(strtoupper($input));

$stack = stack($trim, $upper);
echo $stack(' Hello, world! '); // "HELLO, WORLD!"

Middleware Rules

  • Each middleware calls $next and returns its result (or its own value).
  • Pass arguments to $next to mutate them; omit them to preserve the originals.
  • The $envelope array is shared across all middlewares for passing state.
  • Without a terminal middleware, the stack returns a single argument as-is or multiple arguments as an array.

License

MIT