如何在PHP中阅读注释块?

时间:2009-04-02 02:36:52

标签: php reflection comments

我正在做一些自制的自动化文档,因为我的代码库布局不是很标准,我想知道读取PHP文件和获取注释块内容的最佳方法是什么。我能想到的唯一方法就是打开文件并逐行阅读,但是想到可能有一些内置的魔法会为我解析文档,类似于Reflection函数。

每个文件的基本布局如下:

<?php // $Id$
/**
 * Here is this script's documentation, with information in pseudo-javadoc
 * type tags and whatnot.
 *
 * @attr    something    some information about something
 * @attr    etc          etc etc
 */
 // rest of the code goes here.

请务必注意,这些文件中没有定义任何函数或类。这些评论与整个剧本有关。

2 个答案:

答案 0 :(得分:16)

查看Tokenizer

要获取名为test.php的文件中的所有评论,请执行以下操作:

$tokens = token_get_all(file_get_contents("test.php"));
$comments = array();
foreach($tokens as $token) {
    if($token[0] == T_COMMENT || $token[0] == T_DOC_COMMENT) {
        $comments[] = $token[1];
    }
}
print_r($comments);

答案 1 :(得分:1)

查看PHP5附带的Reflection API,更具体地说getDocComment()

  

PHP 5带有完整的反映   添加能力的API   逆向工程类,接口,   功能和方法以及   扩展。另外,   反射API也提供了方法   检索函数的doc注释,   课程和方法。

此外,根据代码库的大小,您可以通过修改注释以适应phpDocumentor语法来减少工作量,这种语法已经非常接近。