Route::getRoutes()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 0
cp 0
crap 2
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Suricate\Console;
6
7
use Suricate\Console;
8
use Suricate\Suricate;
9
10
class Route
11
{
12
    protected $app;
13
14
    public function __construct(Suricate $app)
15
    {
16
        $this->app = $app;
17
    }
18
19
    /**
20
     * Execute command
21
     *
22
     * @return integer
23
     * @SuppressWarnings(PHPMD.StaticAccess)
24
     */
25
    public function execute(): int
26
    {
27
        $routes = $this->getRoutes();
28
        $messages = [];
29
        $messages[] = "Number of routes defined: " . count($routes);
30
        $messages[] = "";
31
32
        foreach ($routes as $route) {
33
            $messages[] = str_repeat("-", 80);
34
            $messages[] = " ";
35
36
            $messages[] =
37
                "Name: " . Console::coloredString($route->getName(), 'green');
38
            $messages[] =
39
                " Methods: " .
40
                str_pad(implode('|', $route->getMethod()), 20, ' ') .
41
                " | Path: " .
42
                $route->getPath();
43
            $messages[] = " Parameters:";
44
            $parameters = $route->getParameters();
45
            if (count($parameters) === 0) {
46
                $messages[] = "     None";
47
            } else {
48
                foreach ($parameters as $paramName => $paramPattern) {
49
                    $messages[] = "     - " . $paramName . ": " . $paramPattern;
50
                }
51
            }
52
53
            $messages[] = " Target: " . implode('::', $route->getTarget());
54
        }
55
56
        echo implode("\n", $messages);
57
58
        return 0;
59
    }
60
61
    /**
62
     * Get routes defined in configuration
63
     *
64
     * @return array
65
     */
66
    protected function getRoutes(): array
67
    {
68
        return Suricate::Router()->getRoutes();
69
    }
70
}
71