Skip to content

Middleware Collector

Captures HTTP middleware stack execution — the before and after processing phases with timing and memory usage.

What It Captures

FieldDescription
beforeStackMiddleware invoked before the action handler
actionHandlerThe main action/controller handler
afterStackMiddleware invoked after the action handler

Each middleware entry contains:

FieldDescription
nameMiddleware class name
timeExecution timestamp
memoryMemory usage at this point
requestRequest state (before stack)
responseResponse state (after stack)

Data Schema

json
{
    "beforeStack": [
        {"name": "App\\Middleware\\AuthMiddleware", "time": 1711878000.100, "memory": 2097152, "request": "..."}
    ],
    "actionHandler": {
        "name": "App\\Controller\\UserController::index",
        "startTime": 1711878000.105,
        "request": "...",
        "response": "...",
        "endTime": 1711878000.120,
        "memory": 4194304
    },
    "afterStack": [
        {"name": "App\\Middleware\\CorsMiddleware", "time": 1711878000.121, "memory": 4194304, "response": "..."}
    ]
}

Summary (shown in debug entry list):

json
{
    "middleware": {
        "total": 5
    }
}

Contract

php
use AppDevPanel\Kernel\Collector\MiddlewareCollector;

$collector->collectBefore(
    name: 'App\\Middleware\\AuthMiddleware',
    time: microtime(true),
    memory: memory_get_usage(),
    request: $request,
);

$collector->collectAfter(
    name: 'App\\Middleware\\CorsMiddleware',
    time: microtime(true),
    memory: memory_get_usage(),
    response: $response,
);

How It Works

Framework adapters instrument the middleware pipeline:

Debug Panel

  • Middleware stack — visual before/after pipeline with action handler in the middle
  • Timing — execution time for each middleware
  • Memory tracking — memory usage delta across the pipeline

Released under the MIT License.