У меня есть скрипт, который рекурсивно сканирует каталог, извлекая имена классов из файлов php и сохраняя имена этих классов в массиве. Это прекрасно работает даже через довольно большие папки библиотеки Zend Framework.
Проблема в том, что классы, расширяющие другие классы, не включаются в массив.
Вот мой текущий preg_match:
if (preg_match("/class\s*(\w*)\s*\{/i",strip_comments(file_get_contents($file)),$matches)) $classes[] = $matches[1];
Я знаю, что последнее \ s * не правильно; там должно быть что-то, что может поймать "{" или "extends Some_Other_Class {".