解析php脚本以用于文档目的

时间:2014-11-19 19:36:22

标签: php parsing compiler-construction documentation-generation code-documentation

我无法找到任何便宜的工具来记录PHP脚本中的所有变量/ consts / functs / classes / includes,所以我正在编写自己的。 (我使用了很多需要修改的开源脚本。另外,为我自己的项目创建一个目录会很好。)

我已经使用php字符串函数,查找所有常量,然后遍历脚本的每一行,在数组中加载行号,然后包含/要求,然后是变量等,将其中的一个混合在一起。我想要的90%。但是,如果我要改进它,我可能会改变逐字符处理脚本的方法,就像php编译器可能做的那样。谁有更好的想法如何解决这个问题?我不敢相信我必须发明这个轮子......

我认为有编程环境内置了这个功能,但我老了,预算很低。而且,是的,OO和紧密函数消除了记录大多数变量的需要,但是仍然需要查看include / require树,文档全局变量,查看类的所有实例的使用位置以及如何使用等等。

2 个答案:

答案 0 :(得分:2)

强烈建议使用以下工具为项目生成HTML文档,只需选择其中一个:

您还可以根据需要自定义HTML输出,或者选择社区制作的模板。

答案 1 :(得分:0)

看起来我最好的办法就是在php中使用内置的Tokenizer(http://php.net/manual/en/ref.tokenizer.php)。

$theTokens = token_get_all(file_get_contents($currentFile)) ;
echo '<table>' ;
for ($i=0;$i<count($theTokens); $i++) 
    {
        if (count($theTokens[$i])==3)
        {
            echo '<tr><td>'.token_name($theTokens[$i][0]).'</td><td>'.$theTokens[$i][1].'</td><td>'.$theTokens[$i][2].'</td><tr>' ;
        }
    }
echo '</table>' ;

这个ids变量,但需要处理以识别数组,类ID等。