Caller   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 52
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 10 1
A __construct() 0 5 1
1
<?php
2
3
namespace SideDevOrg\MiniPhpFw;
4
5
use Psr\Http\Message\ResponseInterface as Response;
6
use Psr\Http\Message\RequestInterface as Request;
7
8
/**
9
 * Framework Caller middleware.
10
 */
11
class Caller
12
{
13
    /**
14
     * Class name.
15
     *
16
     * @var string
17
     */
18
    private $class;
19
20
    /**
21
     * Method name.
22
     *
23
     * @var string
24
     */
25
    private $method;
26
27
    /**
28
     * Method param array.
29
     *
30
     * @var array
31
     */
32
    private $vars;
33
34
    /**
35
     * Caller middleware construct.
36
     */
37 4
    public function __construct(string $class, string $method, array $vars)
38
    {
39 4
        $this->class = $class;
40 4
        $this->method = $method;
41 4
        $this->vars = $vars;
42 4
    }
43
44
    /**
45
     * Invoke middleware.
46
     *
47
     * @param \Psr\Http\Message\RequestInterface  $request
48
     * @param \Psr\Http\Message\ResponseInterface $response
49
     * @param callable                            $next
50
     *
51
     * @return \Psr\Http\Message\ResponseInterface
52
     */
53 4
    public function __invoke(Request $request, Response $response, callable $next) : \Psr\Http\Message\ResponseInterface
54
    {
55 4
        $class = new $this->class();
56 4
        $class->setRequest($request);
57
58 4
        $response->getBody()->write(
59 4
            call_user_func_array([$class, $this->method], $this->vars)
60
        );
61
62 4
        return $next($request, $response);
63
    }
64
}
65