janderson / tiny-stack
A tiny middleware stack dispatcher
v0.1
2026-03-30 02:21 UTC
Requires (Dev)
- phpunit/phpunit: ^13.0
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
$nextand returns its result (or its own value). - Pass arguments to
$nextto mutate them; omit them to preserve the originals. - The
$envelopearray 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