Passed
Branch master (ae28f9)
by Alexey
03:06
created

RouteParser   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 63.64%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 1
dl 0
loc 32
ccs 7
cts 11
cp 0.6364
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A parse() 0 9 2
1
<?php declare(strict_types = 1);
2
3
namespace Venta\Routing;
4
5
use FastRoute\RouteCollector;
6
use Venta\Contracts\Routing\RouteParser as RouteParserContract;
7
8
/**
9
 * Class RouteParser
10
 *
11
 * @package Venta\Routing
12
 */
13
final class RouteParser implements RouteParserContract
14
{
15
16
    /**
17
     * @var RouteCollector
18
     */
19
    private $collector;
20
21
    /**
22
     * RouteParser constructor.
23
     *
24
     * @param RouteCollector $collector
25
     */
26 2
    public function __construct(RouteCollector $collector)
27
    {
28 2
        $this->collector = $collector;
29 2
    }
30
31
    /**
32
     * @inheritDoc
33
     */
34 1
    public function parse(array $routes): array
35
    {
36
        /** @var \Venta\Contracts\Routing\Route $route */
37 1
        foreach ($routes as $route) {
38 1
            $this->collector->addRoute($route->getMethods(), $route->getPath(), $route);
39
        }
40
41 1
        return $this->collector->getData();
42
    }
43
44
}
45