Route   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 59
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 28
c 2
b 0
f 0
dl 0
loc 59
ccs 0
cts 25
cp 0
rs 10
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getRoutes() 0 3 1
A execute() 0 34 4
A __construct() 0 3 1
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