RouteConfig::getRoutes()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
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