Oihana PHP

middlewareCallable.php

Table of Contents

Functions

middlewareCallable()  : callable
Wrap a callable with before/after middleware.

Functions

middlewareCallable()

Wrap a callable with before/after middleware.

middlewareCallable(callable $callable[, callable|array<string|int, callable> $before = [] ][, callable|array<string|int, callable> $after = [] ]) : callable

This function allows decorating a callable with logic that runs before and/or after the original callable. Supports a single callable or an array of callables for both before and after.

  • before callables receive the original arguments.
  • after callables receive the original arguments + the result. If an after callback returns a non-null value, it overrides the result.
Parameters
$callable : callable

The main callable to wrap

$before : callable|array<string|int, callable> = []

Callable or array of callables to run before

$after : callable|array<string|int, callable> = []

Callable or array of callables to run after

Tags
example
use function oihana\core\callables\middlewareCallable;

$fn = fn(int $x): int => $x * 2;

// Single before and after callables
$wrapped = middlewareCallable(
    $fn,
    before: fn(int $x) => print("Before $x\n"),
    after:  fn(int $x, int $result) => print("After $result\n")
);

echo $wrapped(5); // Before 5, After 10, 10

// Multiple before/after callables
$wrapped2 = middlewareCallable
(
    $fn,
    before: [
        fn(int $x) => print("B1-$x\n"),
        fn(int $x) => print("B2-$x\n")
    ],
    after: [
        fn(int $x, int $r) => print("A1-$r\n"),
        fn(int $x, int $r) => print("A2-$r\n")
    ]
);

echo $wrapped2(3); // B1-3, B2-3, A1-6, A2-6, 6
author

Marc Alcaraz

since
1.0.7
Return values
callable

Wrapped callable with middleware applied


        
On this page

Search results