【发布时间】:2010-11-17 03:45:24
【问题描述】:
我正在寻找一个类似于 gprof 的实用程序,它将为 PHP 代码生成 call graph。我更喜欢可以产生图形输出的东西,或者至少可以由 GraphViz 或类似工具解释的文本输出,但我会满足于纯文本输出。
有没有人知道有什么工具可以做到这一点?
【问题讨论】:
标签: php visualization call-graph
我正在寻找一个类似于 gprof 的实用程序,它将为 PHP 代码生成 call graph。我更喜欢可以产生图形输出的东西,或者至少可以由 GraphViz 或类似工具解释的文本输出,但我会满足于纯文本输出。
有没有人知道有什么工具可以做到这一点?
【问题讨论】:
标签: php visualization call-graph
我一定会尝试Doxygen。它支持 PHP,它创建的调用图和调用者图对于我之前探索“外来代码”非常有用。
【讨论】:
这是一个老话题 - 但如果有人觉得它有用的话....
kKCachegrind 将生成显示实际执行线程的调用图。
PHPCallGraph 是一个相当简单的 graphviz,它执行静态分析
还有my own effort,它类似于PHPCallGraph,但添加了有关循环/条件结构的信息,并提供了一种向节点添加回调的方法。一些示例脚本与工具包捆绑在一起 - 但您也可以将其嵌入到您自己的脚本中。
【讨论】:
如前所述,Doxygen 可以生成调用图。
Xdebug 可以生成function traces。这些与 doxygen 的图表不同之处在于它们是从运行时代码生成的,而 doxygen 是静态生成的。我不知道有任何工具可以将函数跟踪转换为可视化表示,尽管它应该不难做到。
还有bytekit 扩展,主要功能是显示php 源代码将生成的字节码。它可以在图表中显示这一点,这本质上是一个调用图。
【讨论】:
如果您需要互动,请查看新的nWire for PHP。它是一个 Eclipse 插件,适用于 PDT 2.1 和 Zend Studio 7.0。
【讨论】:
不确定是否有任何东西可以分析用 PHP 编写的源代码来生成...但是当您运行代码时,有可能。
您可能想看看Xdebug 扩展:它将profiling 引入PHP,并生成类似callgrind 的文件,可以在Linux 上使用KCacheGrind 读取。
而且这个能够生成某种调用图。
它也可以与PHPUNIt集成,在运行单元测试时生成code-coverage
前段时间,PHPUnit 能够使用 graphviz 生成一些调用图;不过,我再也找不到那个选项了:-(
编辑:这是我第一次听说它,但是有一个名为 phpCallGraph 的项目也可能对您有所帮助......如果我看一下它,似乎还有工作正在进行中@ 987654326@
【讨论】: