我正在寻找一种方法将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或任何此类库,它必须是相对独立的。
,删除评论大纲后,比使用一堆正则表达式更好的任何给定解决方案都会很棒。答案 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 :(得分:0)
PHPDocumentor是一个独立的docblock解析器。