RouteConfig   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 10
dl 0
loc 33
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A register() 0 15 3
A getRoutes() 0 3 1
1
<?php declare(strict_types=1);
2
3
namespace OpenEngine\Mika\Core\Components\Route;
4
5
use OpenEngine\Mika\Core\Components\Route\Interfaces\RouteConfigInterface;
6
use OpenEngine\Helpers\Path;
7
8
/**
9
 * Class RouteConfig
10
 * @package OpenEngine\Mika\Core\Components\Route
11
 */
12
class RouteConfig implements RouteConfigInterface
13
{
14
    /**
15
     * @var string[]
16
     */
17
    private $routes = [];
18
19
    /**
20
     * @inheritdoc
21
     */
22
    public function getRoutes(): array
23
    {
24
        return $this->routes;
25
    }
26
27
    /**
28
     * @inheritdoc
29
     */
30
    public function register(string $route, string $controllersNamespace): void
31
    {
32
        $controllerFiles = glob(Path::getPathByNamespace($controllersNamespace . '/*'));
33
34
        $result = [];
35
36
        foreach ($controllerFiles as $controllerFile) {
37
            $result[] = $controllersNamespace . '\\' . basename($controllerFile, '.php');
38
        }
39
40
        if (empty($result)) {
41
            return;
42
        }
43
44
        $this->routes[$route] = $result;
45
    }
46
}
47