Passed
Push — master ( bc6353...41250d )
by Hong
02:14
created

Handler::handle()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
/**
4
 * Phoole (PHP7.2+)
5
 *
6
 * @category  Library
7
 * @package   Phoole\Middleware
8
 * @copyright Copyright (c) 2019 Hong Zhang
9
 */
10
declare(strict_types=1);
11
12
namespace Phoole\Middleware;
13
14
use Psr\Http\Server\MiddlewareInterface;
15
use Psr\Http\Server\RequestHandlerInterface;
16
use Psr\Http\Message\ResponseInterface;
17
use Psr\Http\Message\ServerRequestInterface;
18
19
/**
20
 * Handler
21
 *
22
 * Convert a middleware to a handler in the queue
23
 *
24
 * @package Phoole\Middleware
25
 */
26
class Handler implements RequestHandlerInterface
27
{
28
    /**
29
     * @var MiddlewareInterface
30
     */
31
    private $middleware;
32
33
    /**
34
     * @var RequestHandlerInterface
35
     */
36
    private $handler;
37
38
    /**
39
     * @param MiddlewareInterface $middleware
40
     * @param RequestHandlerInterface $handler
41
     */
42
    public function __construct(
43
        MiddlewareInterface $middleware,
44
        RequestHandlerInterface $handler
45
    ) {
46
        $this->middleware = $middleware;
47
        $this->handler = $handler;
48
    }
49
50
    /**
51
     * {@inheritDoc}
52
     */
53
    public function handle(ServerRequestInterface $request): ResponseInterface
54
    {
55
        return $this->middleware->process($request, $this->handler);
56
    }
57
}
58