- 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
58 lines
1.9 KiB
PHP
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";
|
|
}
|