aboutsummaryrefslogtreecommitdiff
path: root/tests/Fixtures/FakeMiddleware.php
blob: d684e7ce8f556c702557ef0a10d43de7173bd892 (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
27
28
29
30
<?php

declare(strict_types=1);

namespace BrettParson\MiniRoute\Tests\Fixtures;

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

final class FakeMiddleware implements MiddlewareInterface
{
    /** @var ArrayObject<int, string>|null */
    private ?ArrayObject $log;

    public function __construct(
        private readonly string $name = 'fake',
        ?ArrayObject $log = null,
    ) {
        $this->log = $log;
    }

    public function handle(RequestInterface $request, callable $next): ResponseInterface
    {
        $this->log?->append($this->name);

        return $next($request);
    }
}