• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Jagepard / Rudra-Cli / 15920986328

27 Jun 2025 07:42AM UTC coverage: 4.771% (-95.2%) from 100.0%
15920986328

push

github

web-flow
Merge pull request #29 from Jagepard/wip

adds commands

0 of 479 new or added lines in 20 files covered. (0.0%)

24 of 503 relevant lines covered (4.77%)

0.12 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/Command/RouterCommand.php
1
<?php
2

3
namespace Rudra\Cli\Command;
4

5
use Rudra\Container\Facades\Rudra;
6
use Rudra\Cli\Command\ConsoleFacade as Cli;
7
use Rudra\Router\RouterFacade as Router;
8

9
class RouterCommand
10
{
11
    /**
12
     * Returns all routes
13
     * ------------------
14
     * Возвращает все маршруты
15
     */
NEW
16
    public function actionIndex(): void
×
17
    {
NEW
18
        $_SERVER["REQUEST_METHOD"] = 'GET';
×
NEW
19
        $_SERVER["REQUEST_URI"]    = '';
×
20

NEW
21
        foreach (Rudra::config()->get('containers') as $container => $item) {
×
NEW
22
            $mask  = "| %-3s | %-45s | %-6s | %-65s | %-25s |" . PHP_EOL;
×
NEW
23
            $frame = "\e[1;34m+-----+-----------------------------------------------+--------+-------------------------------------------------------------------+---------------------------+\e[m" . PHP_EOL;
×
NEW
24
            Cli::printer(strtoupper($container) . PHP_EOL, "yellow");
×
25

NEW
26
            echo $frame;
×
NEW
27
            printf("\e[1;95m" . $mask . "\e[m", "#", "Route", "Method", "Controller", "Action");
×
NEW
28
            echo $frame;
×
NEW
29
            $this->getTable($this->getRoutes($container), $mask);
×
NEW
30
            echo $frame;
×
31
        }
32
    }
33

34
    /**
35
     * Returns the route of the module
36
     * -------------------------------
37
     * Возвращает маршрут модуля
38
     */
NEW
39
    public function actionContainer(): void
×
40
    {
NEW
41
        $_SERVER["REQUEST_METHOD"] = 'GET';
×
NEW
42
        $_SERVER["REQUEST_URI"]    = '';
×
43

NEW
44
        Cli::printer("Enter container name: ", "magenta");
×
NEW
45
        $link  = trim(Cli::reader());
×
NEW
46
        $mask  = "| %-3s | %-45s | %-6s | %-65s | %-25s |" . PHP_EOL;
×
NEW
47
        $frame = "\e[1;34m+-----+---------------------------------------------+--------+-------------------------------------------------------------------+--------------------------+\e[m" . PHP_EOL;
×
48

NEW
49
        echo $frame;
×
NEW
50
        printf("\e[1;95m" . $mask . "\e[m", "#", "Route", "Method", "Controller", "Action");
×
NEW
51
        echo $frame;
×
NEW
52
        $this->getTable($this->getRoutes($link), $mask);
×
NEW
53
        echo $frame;
×
54
    }
55

56
    /**
57
     * Generates a color-alternating route table
58
     * -----------------------------------------
59
     * Формирует таблицу маршрутов с чередованием цветов
60
     */
NEW
61
    protected function getTable(array $data, string $mask): void
×
62
    {
NEW
63
        $i = 1;
×
NEW
64
        $colors = ["\e[0;36m", "\e[0;32m"]; // color-alternating
×
65

NEW
66
        foreach ($data as $routes) {
×
NEW
67
            foreach ($routes as $route) {
×
NEW
68
                $color = $colors[($i - 1) % 2];
×
NEW
69
                printf(
×
NEW
70
                    $color . $mask . "\e[m",
×
NEW
71
                    $i,
×
NEW
72
                    $route['url'],
×
NEW
73
                    $route['method'],
×
NEW
74
                    $route['controller'],
×
NEW
75
                    $route['action'] ?? 'actionIndex'
×
NEW
76
                );
×
NEW
77
                $i++;
×
78
            }
79
        }
80
    }
81

82
    /**
83
     * Collects route files from modules
84
     * ---------------------------------
85
     * Собирает файлы маршрутов из модулей
86
     */
NEW
87
    protected function getRoutes(string $container): array
×
88
    {
NEW
89
        $path = "app/Containers/" . ucfirst($container) . "/routes";
×
90

NEW
91
        if (file_exists($path . ".php")) {
×
NEW
92
            return Router::annotationCollector(require $path . ".php", true, Rudra::config()->get("attributes"));
×
93
        }
94

NEW
95
        return [];
×
96
    }
97
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc