Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP文件中提取函数声明_Php_Parsing_Documentation - Fatal编程技术网

从PHP文件中提取函数声明

从PHP文件中提取函数声明,php,parsing,documentation,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 c

我希望为我的框架和应用程序创建一个现场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++头文件):

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

有什么想法吗

我想保留当前的注释格式。我自己和正在编写代码的人都讨厌与PHPDocumentor相关的冗长。更不用说重写整个项目的注释需要几年时间,所以我只想保留//注释的纯文本格式。

为什么不直接运行代码呢

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

编辑:由于您不需要PHPDoc,我认为编写一个正则表达式解析器可能是最简单的,因为反射不会向您提供任何周围的注释

获取注释的PHP代码:

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

这就是为什么。您可以按照特定的规则以特定的方式对代码进行注释,完成后通过解析器运行代码。它输出的正是您想要的。

谢谢。在
/
和换行符之间,正则表达式是什么?preg_match(“@/(.+)$@,$line,$match)非常感谢您的快速响应。
if(preg_match("@//(.+)$@",$line,$match)>0)
{
echo "Comment is: ".$match[1];
}