```php function getRoutingTable(array $routingRules): string { $table = ""; $table .= ""; foreach ($routingRules as $route) { // HTTP Method + Route $methodRoute = "{$route['httpMethod']} {$route['route']}"; // Handler $handler = ''; if (is_array($route['handler']) && count($route['handler']) === 2) { $handler = "{$route['handler'][0]}@{$route['handler'][1]}"; } elseif ($route['handler'] instanceof Closure) { $handler = 'Closure'; } elseif (isset($route['handler']['__invoke'])) { $handler = 'Invokable Class'; } // Name $name = $route['name'] ?? 'NULL'; // Before Middlewares $beforeMiddlewares = []; foreach ($route['middlewares']['before'] as $middleware) { if (is_array($middleware) && count($middleware) === 2) { $beforeMiddlewares[] = "{$middleware[0]}@{$middleware[1]}"; } } $beforeMiddlewaresStr = implode('
', $beforeMiddlewares) ?: 'None'; // After Middlewares $afterMiddlewares = []; foreach ($route['middlewares']['after'] as $middleware) { if (is_array($middleware) { $afterMiddlewares[] = "{$middleware[0]}@{$middleware[1]}"; } } $afterMiddlewaresStr = implode('
', $afterMiddlewares) ?: 'None'; $table .= ""; } $table .= "
HTTP Method + Route Handler Name Before Middlewares After Middlewares
{$methodRoute} {$handler} {$name} {$beforeMiddlewaresStr} {$afterMiddlewaresStr}
"; return $table; } // Использование: echo getRoutingTable(AppRouter::getRoutingRules()); ```