Вы можете легко сделать это самостоятельно с помощью Reflection API:
/**
* This is an Example class
*/
class Example
{
/**
* This is an example function
*/
public function fn()
{
// void
}
}
$reflector = new ReflectionClass('Example');
// to get the Class DocBlock
echo $reflector->getDocComment()
// to get the Method DocBlock
$reflector->getMethod('fn')->getDocComment();
См. этот учебник: http://www.phpriot.com/articles/reflection-api
Существует также пакет PEAR, который может разбирать DocBlocks.
Похоже, вам нужен синтаксический анализатор PHP, который может экспортировать конкретные детали того, что было проанализировано.
Наш Внешний интерфейс семантического дизайна PHP предоставляет полный синтаксический анализатор PHP 4/5 (с 2016 года включает PHP 7). Он анализирует исходный код PHP, строит абстрактные синтаксические деревья, маркирует каждый узел точной информацией о местоположении и делает их доступными для дальнейшего использования. Одна общая вещь, которую он может сделать, - это распечатать любое поддерево как исходный текст.
В вашем случае вы хотите просмотреть деревья, найти классы / методы / свойства (как узлы дерева) и распечатать их исходный текст вместе с информацией о местоположении. Я думаю, это доставит именно то, что вы хотите.