是否有可用的PHP DocBlock解析器工具?
我想建立一些规模较小,但高度定制的几个项目的文档网站。它很好,但很重。我曾想过尝试调整模板,但在花了几分钟的时间研究后,我决定这将是太多的工作 理想情况下,我希望看到一些东西,我可以传递一堆文件,让它返回所有的文件、类、属性和方法,以及它们的元数据,这样我就可以基于这些数据构建一些简单的模板是否有可用的PHP DocBlock解析器工具?,php,documentation,parsing,docblocks,Php,Documentation,Parsing,Docblocks,我想建立一些规模较小,但高度定制的几个项目的文档网站。它很好,但很重。我曾想过尝试调整模板,但在花了几分钟的时间研究后,我决定这将是太多的工作 理想情况下,我希望看到一些东西,我可以传递一堆文件,让它返回所有的文件、类、属性和方法,以及它们的元数据,这样我就可以基于这些数据构建一些简单的模板 是否有任何DocBlock parser-only项目可以帮助我完成这项任务,或者我被困在重新发明轮子上了吗?您可以使用 请参见本教程: 还有一种可以解析docblock的方法。只是为了更新答案。您可能还想
是否有任何DocBlock parser-only项目可以帮助我完成这项任务,或者我被困在重新发明轮子上了吗?您可以使用 请参见本教程:
还有一种可以解析docblock的方法。只是为了更新答案。您可能还想签出该项目。我认为它的PHP DocBlock解析器可以很容易地提取为独立的解决方案 以防有人需要正则表达式(尝试此操作并注释它可以满足她/他的需要) 示例():
<?php
$str ='
/**
* @param integer $int An integer
* @return boolean
*/
';
if (preg_match_all('/@(\w+)\s+(.*)\r?\n/m', $str, $matches)){
$result = array_combine($matches[1], $matches[2]);
}
var_dump($result);
作为furgas,我已经作为一个独立的项目使用了多年,效果很好
<?php
$class = new ReflectionClass('MyClass');
$phpdoc = new \phpDocumentor\Reflection\DocBlock($class);
var_dump($phpdoc->getShortDescription());
var_dump($phpdoc->getLongDescription()->getContents());
var_dump($phpdoc->getTags());
var_dump($phpdoc->hasTag('author'));
var_dump($phpdoc->hasTag('copyright'));
要使用反射,您不需要加载包含感兴趣类的PHP脚本吗?对于任意长的PHP脚本列表,您是如何做到这一点的?@Ira请参见中的示例-如果您想解析类的文件,您可以使用DocBlox并在您可以使用的目录上进行迭代,DocBlox已与phpDocumentor合并成为。尽管我同意phpDocumentor很好,OP明确要求的内容不是phpDocumentor
<?php
$str ='
/**
* @param integer $int An integer
* @return boolean
*/
';
if (preg_match_all('/@(\w+)\s+(.*)\r?\n/m', $str, $matches)){
$result = array_combine($matches[1], $matches[2]);
}
var_dump($result);
<?php
$class = new ReflectionClass('MyClass');
$phpdoc = new \phpDocumentor\Reflection\DocBlock($class);
var_dump($phpdoc->getShortDescription());
var_dump($phpdoc->getLongDescription()->getContents());
var_dump($phpdoc->getTags());
var_dump($phpdoc->hasTag('author'));
var_dump($phpdoc->hasTag('copyright'));