Files
michaelschiemer/tests/debug/check-discovery.php
Michael Schiemer 70e45fb56e fix(Discovery): Add comprehensive debug logging for router initialization
- Add initializer count logging in DiscoveryServiceBootstrapper
- Add route structure analysis in RouterSetup
- Add request parameter logging in HttpRouter
- Update PHP production config for better OPcache handling
- Fix various config and error handling improvements
2025-10-27 22:23:18 +01:00

58 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
require __DIR__ . '/../../vendor/autoload.php';
use App\Framework\Core\AppBootstrapper;
use App\Framework\Discovery\DiscoveryRegistry;
use App\Framework\Attributes\Route;
echo "=== Discovery Debug Script ===\n\n";
try {
// Bootstrap application
$bootstrapper = new AppBootstrapper();
$container = $bootstrapper->bootstrap();
// Get DiscoveryRegistry
$registry = $container->get(DiscoveryRegistry::class);
// Check Route attribute count
$routeCount = $registry->attributes->getCount(Route::class);
echo "📊 Discovery Stats:\n";
echo " - Total Route Attributes Found: {$routeCount}\n\n";
if ($routeCount === 0) {
echo "❌ NO ROUTES DISCOVERED!\n";
echo " This explains why the router cannot find any routes.\n\n";
// Check if discovery ran at all
echo "🔍 Checking discovery results...\n";
$allAttributes = $registry->attributes->all();
echo " - Total attribute types discovered: " . count($allAttributes) . "\n";
foreach ($allAttributes as $attrType => $instances) {
echo " - {$attrType}: " . count($instances) . " instances\n";
}
} else {
echo "✅ Routes discovered successfully!\n";
echo " Listing first 10 routes:\n\n";
$routes = $registry->attributes->get(Route::class);
$count = 0;
foreach ($routes as $routeData) {
if ($count++ >= 10) break;
$route = $routeData->instance;
echo " - {$route->method->value} {$route->path}\n";
echo " Controller: {$routeData->className}\n";
echo " Method: {$routeData->method->name}\n\n";
}
}
} catch (\Throwable $e) {
echo "❌ Error: " . $e->getMessage() . "\n";
echo " File: {$e->getFile()}:{$e->getLine()}\n";
echo " Stack trace:\n{$e->getTraceAsString()}\n";
}