从PHP文件中提取函数声明

时间:2010-04-20 05:01:41

标签: php parsing documentation

我希望为我的框架和应用程序创建一个现场API参考。

基本上,我说有一个类文件model.class.php

class Model extends Object {

    ... code here ...

    // Separates results into pages.
    // Returns Paginator object.

    final public function paginate($perpage = 10) {

        ... more code here ...

    }

}

我希望能够生成一个我的开发人员可以快速引用的引用,以便知道可以调用哪些函数。他们只需要在每个函数和声明行的正上方看到注释。像这样的东西(类似于C ++头文件):

// Separates results into pages.
// Returns Paginator object.

final public function paginate($perpage = 10);

我做了一些研究,this answer看起来很不错(使用Reflection类),但是,我不确定如何保留评论。

有什么想法吗?

我想保留当前的评论格式。我自己和正在处理代码的人讨厌与PHPDocumentor相关的详细程度。更不用说整个项目的评论重写需要数年时间,所以我想保留明文中的//评论。

2 个答案:

答案 0 :(得分:2)

为什么不在代码上运行PHPDocumenter

PHPDoc与JavaDoc完全相同,并将保留函数上方docblock中的所有参数和注释。

编辑:既然你不想要PHPDoc,我认为编写一个RegEx解析器可能最容易,因为Reflection不会为你提供任何周围的评论。

获取评论的PHP代码:

if(preg_match("@//(.+)$@",$line,$match)>0)
{
echo "Comment is: ".$match[1];
}

答案 1 :(得分:1)

这是phpdoc的用途。您按照特定的规则以特定的方式对代码进行注释,并在完成后通过解析器运行代码。它完全输出您正在寻找的东西。