Existem ferramentas do analisador DocBlock do PHP disponíveis?

Gostaria de criar alguns sites de documentação mais pequenos, mas muito personalizados, para alguns projetos. PhpDocumentor é muito bom, mas é muito pesado. Pensei em tentar ajustar os modelos para isso, mas depois de passar apenas alguns minutos procurando isso, decidi que seria muito trabalho.

Idealmente, eu gostaria de ver algo para o qual eu poderia passar um monte de arquivos e tê-lo retornar todos os arquivos, classs e propriedades e methods, juntamente com seus metadados, para que eu pudesse construir alguns modelos simples com base no dados.

Existem alguns projetos do Docslock Analys-Only que me ajudarão nesta tarefa, ou estou preso a reinventar essa roda?

Você pode fazer isso facilmente com a 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(); 

Veja este tutorial: http://www.phpriot.com/articles/reflection-api

Há também um pacote PEAR que pode analisar DocBlocks.

No caso de alguém precisar de uma expressão regular ( xdazz sugeriu tentar isso e o estudante310 comentou que funciona para suas necessidades)

 if (preg_match_all('/@(\w+)\s+(.*)\r?\n/m', $str, $matches)){ $result = array_combine($matches[1], $matches[2]); } 

Exemplo ( Demo ) :

  

Apenas para atualizar as respostas. Você também pode verificar o projeto phpDocumentor2 . Eu acho que é o analisador DocBlock do PHP pode ser facilmente extraído como solução autônoma.

Como furgas apontou , usei phpDocumentor há anos como um projeto autônomo e funciona bem.

 getShortDescription()); var_dump($phpdoc->getLongDescription()->getContents()); var_dump($phpdoc->getTags()); var_dump($phpdoc->hasTag('author')); var_dump($phpdoc->hasTag('copyright')); 

Você parece querer um analisador de PHP que pode exportar detalhes específicos sobre o que foi analisado.

Nossos Projetos Semânticos O PHP Front End fornece um analisador PHP 4/5 completo (a partir de 2016 inclui o PHP 7). Ele analisa o código-fonte do PHP, cria trees de syntax abstratas, estampando cada nó com informações de localização precisas e as disponibiliza para uso posterior. Uma coisa geral que pode fazer é imprimir qualquer subtree de volta como o texto original.

No seu caso, você deseja verificar as trees, encontrar as classs / methods / propriedades (como nós de tree) e imprimir seu texto original, juntamente com as informações de localização. Eu acho que isso seria exatamente o que você deseja.