J'ai un script qui scanne récursivement un répertoire en extrayant les noms de classe des fichiers php, et en stockant ces noms de classes dans un tableau. Cela fonctionne bien même à travers les dossiers de bibliothèque Zend Framework plutôt volumineux.Nom de la classe Preg_match du fichier PHP
Le problème est que les classes qui étendent d'autres classes ne sont pas incluses dans le tableau.
Voici mon preg_match actuel:
if (preg_match("/class\s*(\w*)\s*\{/i",strip_comments(file_get_contents($file)),$matches)) $classes[] = $matches[1];
Je sais que le dernier \ s * est pas juste; il devrait y avoir quelque chose qui peut attraper "{" ou "étend Some_Other_Class {".
Pas exhaustive, mais devrait obtenir la plupart des sains. Voir la note ici: http://us2.php.net/manual/en/userlandnaming.php – cbednarski
Ah, merci, j'ai essayé de le garder aussi simple que possible pour éviter les erreurs dans mon regex. –
Notez que votre expression Regex ne retournera que le premier caractère du nom de la classe. – icio