Code Duplication    Length = 35-40 lines in 2 locations

src/LazyMiddlewareAdapter.php 1 location

@@ 12-51 (lines=40) @@
9
use Psr\Http\Message\ServerRequestInterface;
10
use Psr\Http\Server\MiddlewareInterface;
11
12
final class LazyMiddlewareAdapter
13
{
14
    /**
15
     * @var ContainerInterface
16
     */
17
    private $container;
18
19
    /**
20
     * @var string
21
     */
22
    private $serviceId;
23
24
    /**
25
     * @param ContainerInterface $container
26
     * @param string             $serviceId
27
     */
28
    public function __construct(ContainerInterface $container, string $serviceId)
29
    {
30
        $this->container = $container;
31
        $this->serviceId = $serviceId;
32
    }
33
34
    /**
35
     * @param ServerRequestInterface $request
36
     * @param ResponseInterface      $response
37
     * @param callable               $next
38
     *
39
     * @return ResponseInterface
40
     */
41
    public function __invoke(
42
        ServerRequestInterface $request,
43
        ResponseInterface $response,
44
        callable $next
45
    ): ResponseInterface {
46
        /** @var MiddlewareInterface $middleware */
47
        $middleware = $this->container->get($this->serviceId);
48
49
        return $middleware->process($request, new MiddlewareRequestHandlerAdapter($response, $next));
50
    }
51
}
52

src/LazyRequestHandlerAdapter.php 1 location

@@ 12-46 (lines=35) @@
9
use Psr\Http\Message\ServerRequestInterface;
10
use Psr\Http\Server\RequestHandlerInterface;
11
12
final class LazyRequestHandlerAdapter
13
{
14
    /**
15
     * @var ContainerInterface
16
     */
17
    private $container;
18
19
    /**
20
     * @var string
21
     */
22
    private $serviceId;
23
24
    /**
25
     * @param ContainerInterface $container
26
     * @param string             $serviceId
27
     */
28
    public function __construct(ContainerInterface $container, string $serviceId)
29
    {
30
        $this->container = $container;
31
        $this->serviceId = $serviceId;
32
    }
33
34
    /**
35
     * @param ServerRequestInterface $request
36
     *
37
     * @return ResponseInterface
38
     */
39
    public function __invoke(ServerRequestInterface $request): ResponseInterface
40
    {
41
        /** @var RequestHandlerInterface $requestHandler */
42
        $requestHandler = $this->container->get($this->serviceId);
43
44
        return $requestHandler->handle($request);
45
    }
46
}
47