- Fix RedisCache driver to handle MGET failures gracefully with fallback - Add comprehensive discovery context comparison debug tools - Identify root cause: WEB context discovery missing 166 items vs CLI - WEB context missing RequestFactory class entirely (52 vs 69 commands) - Improved exception handling with detailed binding diagnostics
74 lines
2.7 KiB
PHP
74 lines
2.7 KiB
PHP
<?php
|
|
|
|
require_once __DIR__ . '/vendor/autoload.php';
|
|
|
|
echo "=== Full Discovery System Debug ===\n";
|
|
|
|
try {
|
|
// Load the full bootstrapped container
|
|
echo "1. Loading bootstrapped container...\n";
|
|
$container = require 'bootstrap/container.php';
|
|
echo "2. Container loaded successfully\n";
|
|
|
|
// Check if DiscoveryRegistry exists
|
|
echo "3. Checking for DiscoveryRegistry...\n";
|
|
$registry = $container->get('App\\Framework\\Discovery\\Results\\DiscoveryRegistry');
|
|
echo "4. DiscoveryRegistry found: " . get_class($registry) . "\n";
|
|
|
|
// Check initializers
|
|
echo "5. Checking initializers...\n";
|
|
$initializers = $registry->getInitializersByClass();
|
|
echo "6. Total initializers found: " . count($initializers) . "\n";
|
|
|
|
// Look specifically for RequestFactory
|
|
echo "\n=== RequestFactory Search ===\n";
|
|
$requestFactoryFound = false;
|
|
foreach ($initializers as $class => $methods) {
|
|
if (str_contains($class, 'RequestFactory')) {
|
|
echo "Found RequestFactory: $class\n";
|
|
foreach ($methods as $method) {
|
|
echo " Method: $method\n";
|
|
}
|
|
$requestFactoryFound = true;
|
|
}
|
|
}
|
|
|
|
if (!$requestFactoryFound) {
|
|
echo "❌ RequestFactory not found in discovery registry!\n";
|
|
echo "This means the Discovery system isn't finding the RequestFactory class.\n";
|
|
}
|
|
|
|
// Check if Request binding exists in container
|
|
echo "\n=== Container Bindings Check ===\n";
|
|
|
|
// Try to manually check available services if method exists
|
|
if (method_exists($container, 'getRegisteredServices')) {
|
|
$services = $container->getRegisteredServices();
|
|
echo "Total registered services: " . count($services) . "\n";
|
|
|
|
$requestServices = array_filter(array_keys($services), function($key) {
|
|
return str_contains($key, 'Request') || str_contains($key, 'Http');
|
|
});
|
|
|
|
echo "Request-related services:\n";
|
|
foreach ($requestServices as $service) {
|
|
echo " - $service\n";
|
|
}
|
|
} else {
|
|
echo "Container doesn't expose registered services method\n";
|
|
}
|
|
|
|
// Try to resolve Request interface
|
|
echo "\n=== Request Resolution Test ===\n";
|
|
try {
|
|
$request = $container->get('App\\Framework\\Http\\Request');
|
|
echo "✅ SUCCESS: Request resolved as " . get_class($request) . "\n";
|
|
} catch (Throwable $e) {
|
|
echo "❌ FAILED: " . $e->getMessage() . "\n";
|
|
echo "This confirms the Discovery system didn't register the RequestFactory initializer\n";
|
|
}
|
|
|
|
} catch (Throwable $e) {
|
|
echo "BOOTSTRAP ERROR: " . $e->getMessage() . "\n";
|
|
echo "FILE: " . $e->getFile() . ":" . $e->getLine() . "\n";
|
|
} |