9

我正在寻找一些将 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

4 回答 4

1

看看使用反射类 [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

于 2012-02-23T16:36:38.103 回答
1

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

于 2010-06-09T22:23:05.703 回答
0

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

于 2012-02-23T13:03:31.287 回答
0

PHPDocumentor是一个独立的文档块解析器。

于 2010-06-09T22:29:45.580 回答