0) { echo "First few files:\n"; foreach (array_slice($phpFiles, 0, 5) as $file) { echo " - $file\n"; } } $registry = $discoveryService->discover(); echo "\nDiscovery completed!\n\n"; echo "=== Discovery Results ===\n"; echo "Total registry count: " . count($registry) . "\n"; echo "Attributes registry count: " . count($registry->attributes) . "\n\n"; // Check for Initializers in attribute registry $initializerAttributeClass = 'App\\Framework\\DI\\Initializer'; // Check if the attribute registry has the method if (method_exists($registry->attributes, 'get')) { $initializers = $registry->attributes->get($initializerAttributeClass); echo "=== Initializer Results ===\n"; echo "Initializers found: " . count($initializers) . "\n\n"; if (empty($initializers)) { echo "❌ No initializers found!\n\n"; // Try to show what's actually in the registry echo "=== Debug: Registry Structure ===\n"; echo "Registry class: " . get_class($registry) . "\n"; echo "Attributes class: " . get_class($registry->attributes) . "\n"; // Check if we can iterate if (method_exists($registry->attributes, 'getAllTypes')) { echo "\n=== Available Attribute Types ===\n"; $allAttributes = $registry->attributes->getAllTypes(); foreach ($allAttributes as $attrClass) { $count = count($registry->attributes->get($attrClass)); echo "- $attrClass: $count items\n"; } } else { echo "Method getAllTypes not available\n"; } } else { echo "✅ Found initializers:\n"; foreach ($initializers as $mapping) { $className = $mapping->class->getFullyQualified(); $methodName = $mapping->method ? $mapping->method->toString() : '(class-level)'; echo "- {$className}::{$methodName}\n"; echo " File: " . $mapping->file->toString() . "\n"; echo " Target: " . $mapping->target . "\n"; echo "\n"; } } } else { echo "❌ AttributeRegistry doesn't have 'get' method\n"; } } catch (Exception $e) { echo "❌ Error: " . $e->getMessage() . "\n"; echo "Stack trace:\n" . $e->getTraceAsString() . "\n"; }