bootstrapWeb(); echo "DEBUG: Web app bootstrapped successfully\n"; // Get container from the app $reflection = new ReflectionObject($app); $containerProperty = $reflection->getProperty('container'); $containerProperty->setAccessible(true); $container = $containerProperty->getValue($app); echo "DEBUG: Got container from app\n"; // Check if DiscoveryRegistry is available if ($container->has(DiscoveryRegistry::class)) { echo "DEBUG: DiscoveryRegistry is available in container\n"; $registry = $container->get(DiscoveryRegistry::class); $initializerCount = $registry->attributes->getCount(Initializer::class); echo "DEBUG: Found $initializerCount initializer attributes in registry\n"; if ($initializerCount > 0) { $initializers = $registry->attributes->get(Initializer::class); echo "DEBUG: Looking for router-related initializers\n"; foreach ($initializers as $initializer) { $className = $initializer->className->getFullyQualified(); if (str_contains($className, 'Router') || str_contains($className, 'Route')) { echo " ROUTER INITIALIZER: $className\n"; // Get the attribute instance to see the contexts $attributeInstance = $initializer->createAttributeInstance(); if ($attributeInstance instanceof \App\Framework\DI\Initializer) { $contexts = $attributeInstance->contexts; if (empty($contexts)) { echo " CONTEXTS: ALL (no restrictions)\n"; } else { $contextNames = array_map(function($ctx) { return $ctx instanceof \App\Framework\Context\ContextType ? $ctx->name : (string)$ctx; }, $contexts); echo " CONTEXTS: " . implode(', ', $contextNames) . "\n"; } } // Check additionalData for debugging if (isset($initializer->additionalData['contexts'])) { echo " STORED CONTEXTS: " . print_r($initializer->additionalData['contexts'], true); } } } } else { echo "DEBUG: No initializers found in registry\n"; } } else { echo "DEBUG: DiscoveryRegistry is NOT available in container\n"; } echo "DEBUG: Context analysis complete\n";