Completed
Pull Request — master (#15)
by Mathieu
16:37 queued 14:28
created

Route::getRoutes()   A

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 2
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
9
use Suricate\Suricate;
10
11
class Route
12
{
13
    protected $app;
14
15
    public function __construct(Suricate $app)
16
    {
17
        $this->app = $app;
18
    }
19
20
    /**
21
     * Execute command
22
     *
23
     * @return integer
24
     */
25
    public function execute(): int
26
    {
27
        $routes = $this->getRoutes();
28
        echo "Number of routes defined: " . count($routes) . "\n\n";
29
30
        foreach ($routes as $route) {
31
            echo str_repeat("-", 80) . "\n";
32
            echo " ";
33
            echo "Name: " .
34
                Console::coloredString($route->getName(), 'green') .
35
                "\n";
36
            echo " Methods: " .
37
                str_pad(implode('|', $route->getMethod()), 20, ' ');
38
            echo " | Path: ";
39
            echo $route->getPath();
40
            echo "\n";
41
            echo " Parameters:\n";
42
            $parameters = $route->getParameters();
43
            if (count($parameters) === 0) {
44
                echo "     None\n";
45
            } else {
46
                foreach ($parameters as $paramName => $paramPattern) {
47
                    echo "     - " . $paramName . ": " . $paramPattern . "\n";
48
                }
49
            }
50
51
            echo " Target: " . implode('::', $route->getTarget()) . "\n";
52
        }
53
54
        return 0;
55
    }
56
57
    /**
58
     * Get routes defined in configuration
59
     *
60
     * @return array
61
     */
62
    protected function getRoutes(): array
63
    {
64
        return Suricate::Router()->getRoutes();
65
    }
66
}
67