aboutsummaryrefslogtreecommitdiff
path: root/tests/Fixtures/StatefulMiddleware.php
blob: d374238315f9dd46346f8dfb4a68cf49b8700493 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php

declare(strict_types=1);

namespace BrettParson\MiniRoute\Tests\Fixtures;

use BrettParson\MiniRoute\Http\RequestInterface;
use BrettParson\MiniRoute\Http\ResponseInterface;
use BrettParson\MiniRoute\Middleware\MiddlewareInterface;

/**
 * Deliberately stateful middleware. Probes the singleton-container leak:
 * when a resolver returns the same instance per request, state accumulates
 * across dispatches (usage contract; ADR work in miniroute-k4i.3).
 */
final class StatefulMiddleware implements MiddlewareInterface
{
    public int $count = 0;

    public function handle(RequestInterface $request, callable $next): ResponseInterface
    {
        $this->count++;

        return $next($request);
    }
}