Написал для плагина к CudaText либу - она парсит PHP код и находит в нем декларации function/class/namespace. Отдает найденные пункты с их уровнем (по скобкам). Парсит нормально комменты, строки (' и ", и многострочные), heredoc. Основано на простом tokenizer.
https://github.com/Alexey-T/pyPhpTree