100) { // Entferne ältesten Eintrag array_shift(self::$tokenCache); } return $tokens; } /** * Extrahiert Namespace aus Dateiinhalt als Fallback */ private static function extractNamespaceFromContent(string $file): string { $content = file_get_contents($file); if ($content === false) { return ''; } // Regex für namespace-Deklaration if (preg_match('/namespace\s+([^;]+);/', $content, $matches)) { return trim($matches[1]); } return ''; } /** * Leert den internen Cache */ public static function clearCache(): void { self::$classCache = []; self::$tokenCache = []; } /** * Extrahiert den Klassennamen (mit Namespace) aus einer PHP-Datei */ public function getClassNameFromFile(string $file): ?string { $contents = file_get_contents($file); if ( preg_match('#namespace\s+([^;]+);#', $contents, $nsMatch) && preg_match('/class\s+(\w+)/', $contents, $classMatch) ) { return trim($nsMatch[1]) . '\\' . trim($classMatch[1]); } return null; } }