PHP中是否有一个好的(独立的)PHPDoc解析器类或函数?

时间:2010-06-09 22:06:30

标签: php parsing phpdoc

我正在寻找一种方法将PHP Docblock(用于通过Doxygen之类的工具生成文档)转换为我可以在PHP中检查的结构。

例如,我想解析

/**
 * Multiply two values
 * @CHECKME
 *
 * @author someone
 * @created eons ago
 *
 * @param integer $x
 * @param integer $x
 *
 * @return integer
 */
function multiply($x, $y)
{
    return $x * $y;
}

类似于:

array(
     'author'  => 'someone'
    ,'created' => 'eons ago'
    ,'param'   => array(
                      'integer $x'
                     ,'integer $y'
                  )
    ,'_flags'  => array(
                     '@CHECKME'
                  )
);

我明确无法使用 PEAR或任何此类库,它必须是相对独立的。

,删除评论大纲后,比使用一堆正则表达式更好的任何给定解决方案都会很棒。

4 个答案:

答案 0 :(得分:1)

我想知道你是否不能只使用phpdocumentor类。他们已经解析了数据。我怀疑你可以编写自己的临时解析器来处理文件,然后以任何你想要的方式处理原始对象。

答案 1 :(得分:1)

我编写了一个包含PHPDoc解析器类(PHP documentation utility)的运行时Doqumentor。如果你想看一下,我会认为这会做你想要的。如果您有任何改进或错误修复,它也可以在github上使用。

答案 2 :(得分:1)

使用Reflection类[1]作为起点,特别是它的getDocComment()方法[2]。此外,马修关于他使用它的博客文章[3]可能会提供进一步的见解。

[1] - http://www.php.net/manual/en/class.reflectionclass.php

[2] - http://www.php.net/manual/en/reflectionclass.getdoccomment.php

[3] - http://mwop.net/blog/125-PHP-5s-Reflection-API

答案 3 :(得分:0)

PHPDocumentor是一个独立的docblock解析器。