PHP调用图实用程序?

时间:2009-08-05 20:18:31

标签: php visualization call-graph

我正在寻找一个类似于gprof的实用程序,它将为PHP代码生成call graph。我更喜欢可以产生图形输出的东西,或者至少可以通过GraphViz或类似方法解释的文本输出,但我会选择纯文本输出。

有没有人知道任何可以做到这一点的工具?

5 个答案:

答案 0 :(得分:31)

我肯定会尝试Doxygen。它支持PHP,它创建的调用图和调用图对于以前为我探索“外国代码”非常有用。

Example of doxygen call graph

答案 1 :(得分:3)

不确定是否存在任何可以分析用PHP编写的源代码来生成该代码的内容......但是当您运行代码时,可能存在这种可能性。

您可能需要查看Xdebug扩展名:它会将profiling带到PHP,并生成类似callgrind的文件,可以在Linux上使用KCacheGrind读取。

这个能够生成某种调用图。


它也可以与PHPUNit集成,在运行单元测试时生成code-coverage
前一段时间,PHPUnit能够用graphviz生成一些调用图;我不再找到那个选项了: - (


编辑:这是我第一次听到这个消息,但有一个名为phpCallGraph的项目也可以帮助你......如果我看一下,似乎还有工作正在进行中这是changelog

答案 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一起使用。