Resolver   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

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

1 Method

Rating   Name   Duplication   Size   Complexity  
A dispatch() 0 21 2
1
<?php
2
3
namespace SideDevOrg\MiniPhpFw;
4
5
use Relay\RelayBuilder;
6
7
/**
8
 * Framework Resolver.
9
 */
10
class Resolver
11
{
12
    /**
13
     * Resolver dispatch.
14
     *
15
     * @param string                              $class
16
     * @param string                              $method
17
     * @param array                               $vars
18
     * @param \Psr\Http\Message\RequestInterface  $request
19
     * @param \Psr\Http\Message\ResponseInterface $response
20
     * @param array                               $middlewares
21
     *
22
     * @return \Psr\Http\Message\ResponseInterface
23
     */
24 3
    public function dispatch(
25
        string $class,
26
        string $method,
27
        array $vars,
28
        \Psr\Http\Message\RequestInterface $request,
29
        \Psr\Http\Message\ResponseInterface $response,
30
        array $middlewares
31
    ) : \Psr\Http\Message\ResponseInterface {
32 3
        $middlewares[] = Caller::class;
33
34 3
        $relayBuilder = new RelayBuilder(function($instance) use ($class, $method, $vars) {
35 3
            if ($instance == Caller::class) {
36 3
                return new $instance($class, $method, $vars);
37
            }
38
39 1
            return new $instance();
40 3
        });
41
42
        $relay = $relayBuilder->newInstance($middlewares);
43
44
        return $relay($request, $response);
45
    }
46
}
47