Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
@@ -1,29 +1,49 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Framework\Router;
|
||||
|
||||
use App\Framework\Core\Route;
|
||||
use App\Framework\Http\Method;
|
||||
|
||||
final readonly class CompiledRoutes
|
||||
{
|
||||
/**
|
||||
* @param array<string, array<string, Route>> $staticRoutes
|
||||
* @param array<string, CompiledPattern|null> $dynamicPatterns
|
||||
* @param array<string, array<string, array<string, Route>>> $staticRoutes - [method][subdomain][path] => Route
|
||||
* @param array<string, array<string, CompiledPattern|null>> $dynamicPatterns - [method][subdomain] => CompiledPattern
|
||||
*/
|
||||
public function __construct(
|
||||
private array $staticRoutes,
|
||||
private array $dynamicPatterns,
|
||||
private array $namedRoutes,
|
||||
) {}
|
||||
|
||||
public function getStaticRoute(string $method, string $path): ?Route
|
||||
{
|
||||
return $this->staticRoutes[$method][$path] ?? null;
|
||||
) {
|
||||
}
|
||||
|
||||
public function getCompiledPattern(string $method): ?CompiledPattern
|
||||
public function getStaticRoute(Method $method, string $path, string $subdomainKey = 'default'): ?Route
|
||||
{
|
||||
return $this->dynamicPatterns[$method] ?? null;
|
||||
return $this->staticRoutes[$method->value][$subdomainKey][$path] ?? null;
|
||||
}
|
||||
|
||||
public function getCompiledPattern(Method $method, string $subdomainKey = 'default'): ?CompiledPattern
|
||||
{
|
||||
return $this->dynamicPatterns[$method->value][$subdomainKey] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get static routes for a specific subdomain
|
||||
*/
|
||||
public function getStaticRoutesForSubdomain(Method $method, string $subdomainKey): array
|
||||
{
|
||||
return $this->staticRoutes[$method->value][$subdomainKey] ?? [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all subdomain keys for a method
|
||||
*/
|
||||
public function getSubdomainKeys(Method $method): array
|
||||
{
|
||||
return array_keys($this->staticRoutes[$method->value] ?? []);
|
||||
}
|
||||
|
||||
public function getNamedRoute(string $name): ?Route
|
||||
@@ -41,27 +61,58 @@ final readonly class CompiledRoutes
|
||||
return $this->namedRoutes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generator version for memory-efficient iteration over named routes
|
||||
*
|
||||
* @return \Generator<string, Route>
|
||||
*/
|
||||
public function getAllNamedRoutesGenerator(): \Generator
|
||||
{
|
||||
foreach ($this->namedRoutes as $name => $route) {
|
||||
yield $name => $route;
|
||||
}
|
||||
}
|
||||
|
||||
public function getStaticRoutes(): array
|
||||
{
|
||||
return $this->staticRoutes;
|
||||
}
|
||||
|
||||
public function generateUrl(string $name, array $params = []): ?string
|
||||
{
|
||||
$route = $this->getNamedRoute($name);
|
||||
if(!$route) {
|
||||
if (! $route) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $this->buildUrlFromRoute($route, $params);
|
||||
}
|
||||
|
||||
|
||||
public function getStats(): array
|
||||
{
|
||||
$staticCount = array_sum(array_map('count', $this->staticRoutes));
|
||||
$dynamicCount = count(array_filter($this->dynamicPatterns));
|
||||
$staticCount = 0;
|
||||
$dynamicCount = 0;
|
||||
$subdomainCount = 0;
|
||||
|
||||
foreach ($this->staticRoutes as $methodRoutes) {
|
||||
foreach ($methodRoutes as $subdomainRoutes) {
|
||||
$staticCount += count($subdomainRoutes);
|
||||
$subdomainCount++;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->dynamicPatterns as $methodPatterns) {
|
||||
$dynamicCount += count(array_filter($methodPatterns));
|
||||
}
|
||||
|
||||
$namedCount = count($this->namedRoutes);
|
||||
|
||||
return [
|
||||
'static_routes' => $staticCount,
|
||||
'dynamic_patterns' => $dynamicCount,
|
||||
'named_routes' => $namedCount,
|
||||
'total_methods' => count($this->staticRoutes)
|
||||
'subdomain_groups' => $subdomainCount,
|
||||
'total_methods' => count($this->staticRoutes),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -72,6 +123,7 @@ final readonly class CompiledRoutes
|
||||
foreach ($params as $key => $value) {
|
||||
$path = str_replace("{{$key}}", (string)$value, $path);
|
||||
}
|
||||
|
||||
return $path;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user