【问题标题】:PHP call graph utility? [closed]PHP调用图实用程序? [关闭]
【发布时间】:2010-11-17 03:45:24
【问题描述】:

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

有没有人知道有什么工具可以做到这一点?

【问题讨论】:

    标签: php visualization call-graph


    【解决方案1】:

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

    【讨论】:

    • 非常感谢 - doxygen 似乎正在做我所需要的。
    【解决方案2】:

    这是一个老话题 - 但如果有人觉得它有用的话....

    • kKCachegrind 将生成显示实际执行线程的调用图。

    • PHPCallGraph 是一个相当简单的 graphviz,它执行静态分析

    • 还有my own effort,它类似于PHPCallGraph,但添加了有关循环/条件结构的信息,并提供了一种向节点添加回调的方法。一些示例脚本与工具包捆绑在一起 - 但您也可以将其嵌入到您自己的脚本中。

    【讨论】:

    • 其他答案中提到,PHPCallGraph 好像已经停产了(网站里也有很多断掉的链接)
    【解决方案3】:

    如前所述,Doxygen 可以生成调用图。

    Xdebug 可以生成function traces。这些与 doxygen 的图表不同之处在于它们是从运行时代码生成的,而 doxygen 是静态生成的。我不知道有任何工具可以将函数跟踪转换为可视化表示,尽管它应该不难做到。

    还有bytekit 扩展,主要功能是显示php 源代码将生成的字节码。它可以在图表中显示这一点,这本质上是一个调用图。

    【讨论】:

    • bytekit 网站现在是一个“关注让您和您的家人担心的健康问题的网站”。
    【解决方案4】:

    如果您需要互动,请查看新的nWire for PHP。它是一个 Eclipse 插件,适用于 PDT 2.1 和 Zend Studio 7.0。

    【讨论】:

      【解决方案5】:

      不确定是否有任何东西可以分析用 PHP 编写的源代码来生成...但是当您运行代码时,有可能。

      您可能想看看Xdebug 扩展:它将profiling 引入PHP,并生成类似callgrind 的文件,可以在Linux 上使用KCacheGrind 读取。

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


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


      编辑:这是我第一次听说它,但是有一个名为 phpCallGraph 的项目也可能对您有所帮助......如果我看一下它,似乎还有工作正在进行中@ 987654326@

      【讨论】:

      • 谢谢 - 我过去曾尝试使用 Xdebug,不幸的是我无法让它在我的目标平台上正常工作,这是一个嵌入式 MIPS linux 设备,具有一些特殊的 Apache 限制(仅限 TLS,一个监听进程等)
      • 嗬...也许不是那么容易,那么^^您绝对无法访问“标准Linux”机器吗?也许使用虚拟化?
      • 嗯,PHP 运行在我提到的平台上,所以调试器也必须在那里运行。总有一天我会再试一次 :) phpCallGraph 看起来很有希望 - 会检查一下。谢谢!
      • 不客气 :-)(您可以在这里添加一条评论,当您测试它时,说明您认为它有多好/多坏?)
      • 自 2009 年以来没有任何关于 phpCallGraph 的工作(此答案的日期)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2011-03-15
      • 2017-04-26
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 2010-12-24
      相关资源
      最近更新 更多