我正在寻找一个类似于gprof的实用程序,它将为PHP代码生成call graph。我更喜欢可以产生图形输出的东西,或者至少可以通过GraphViz或类似方法解释的文本输出,但我会选择纯文本输出。
有没有人知道任何可以做到这一点的工具?
答案 0 :(得分:31)
我肯定会尝试Doxygen。它支持PHP,它创建的调用图和调用图对于以前为我探索“外国代码”非常有用。
答案 1 :(得分:3)
不确定是否存在任何可以分析用PHP编写的源代码来生成该代码的内容......但是当您运行代码时,可能存在这种可能性。
您可能需要查看Xdebug扩展名:它会将profiling带到PHP,并生成类似callgrind的文件,可以在Linux上使用KCacheGrind读取。
这个能够生成某种调用图。
它也可以与PHPUNit集成,在运行单元测试时生成code-coverage
前一段时间,PHPUnit能够用graphviz生成一些调用图;我不再找到那个选项了: - (
答案 2 :(得分:2)
如前所述,Doxygen可以生成调用图。
Xdebug可以生成function traces。这些与doxygen图表的不同之处在于它们是从运行时代码生成的,而doxygen是静态生成的。我不知道有哪些工具可以将功能轨迹转换为可视化表示,尽管它不应该那么难。
还有bytekit扩展名,其主要功能是显示php源代码将生成的字节码。它可以在图表中显示,基本上是一个调用图。
答案 3 :(得分:2)
这是一个古老的话题 - 但万一有人发现它有用......
kKCachegrind将生成显示实际执行线程的调用图。
PHPCallGraph是一个相当简单的围绕graphviz进行静态分析
还有my own effort与PHPCallGraph类似,但添加了有关循环/条件结构的信息,并提供了一种向节点添加回调的方法。一些示例脚本与工具包捆绑在一起 - 但您也可以将其嵌入到自己的脚本中。
答案 4 :(得分:1)
如果您需要互动内容,请查看新的nWire for PHP。它是一个Eclipse插件,可与PDT 2.1和Zend Studio 7.0一起使用。