getSourcePath()]; $cacheKey = DiscoveryCacheIdentifiers::fullDiscoveryKey($defaultPaths); echo "Checking Web Context Cache Key: {$cacheKey->toString()}\n"; echo "Source path: {$pathProvider->getSourcePath()}\n\n"; // Check cache $cachedItem = $cache->get($cacheKey); if ($cachedItem !== null) { echo "✅ CACHE HIT! Registry found in web cache.\n"; if ($cachedItem->value !== null) { echo "Value type: " . gettype($cachedItem->value) . "\n"; if (is_object($cachedItem->value)) { echo "Registry class: " . get_class($cachedItem->value) . "\n"; if ($cachedItem->value instanceof \App\Framework\Discovery\Results\DiscoveryRegistry) { $registry = $cachedItem->value; echo "Routes count: " . $registry->routes->count() . "\n"; echo "Attributes count: " . count($registry->attributes->getAllTypes()) . "\n"; echo "Interfaces count: " . $registry->interfaces->count() . "\n"; echo "Templates count: " . $registry->templates->count() . "\n"; } else { echo "⚠️ Object is not DiscoveryRegistry: " . get_class($cachedItem->value) . "\n"; } } else { echo "⚠️ Value is not an object: " . gettype($cachedItem->value) . "\n"; if (is_array($cachedItem->value)) { echo "Array keys: " . implode(', ', array_keys($cachedItem->value)) . "\n"; // Test fromArray conversion echo "\n🔄 Testing fromArray conversion...\n"; try { $convertedRegistry = DiscoveryRegistry::fromArray($cachedItem->value); echo "✅ Conversion successful!\n"; echo "Converted routes count: " . $convertedRegistry->routes->count() . "\n"; echo "Converted attributes count: " . count($convertedRegistry->attributes->getAllTypes()) . "\n"; } catch (\Exception $e) { echo "❌ Conversion failed: " . $e->getMessage() . "\n"; } } } } else { echo "⚠️ Registry value is null - deserialization issue?\n"; } } else { echo "❌ CACHE MISS! No registry found in web cache.\n"; } echo "\nDone.\n";