6

我正在寻找一种易于使用的工具,它可以可视化类的“内部工作”,例如用 PHP 编写的。我想看到的是不同的类方法,以及它们是如何相关的(方法 A 调用方法 B 等)。有没有这样的工具来创建这样的图表?在进一步的步骤中,也许有一个工具也可以可视化一个类的“内部工作”(以逆向工程的方式)工作流的真实情况,即所有if-else决策等,在什么情况下调用什么方法?

如果有人可以向我推荐这样的工具(最好是 PHP 和 Python),我将不胜感激。

4

4 回答 4

2

Doxygen是一个可以创建文档以及call graphs从您的代码中创建文档的工具。

您可以参考此页面了解更多信息: http: //www.doxygen.nl/manual/diagrams.html

我使用这个工具来创建文档和调用图。尽管输出取决于偏好,但它非常强大。

它支持多种语言,例如 C、Objective-C、C#、PHP、Java、Python、IDL(Corba、Microsoft 和 UNO/OpenOffice 风格)、Fortran、VHDL、Tcl,在某种程度上还支持 D。

于 2013-06-23T19:30:19.030 回答
0

您可以尝试http://phpcallgraph.sourceforge.net/或来自 github 的这个要点(https://gist.github.com/sebastianbergmann/625915

于 2013-06-20T02:13:33.640 回答
0

尽管很多建议都指向pycallgraph并且phpcallgraph我认为这些不会做您想做的事情-这些是用于运行时分析,而听起来您想做静态分析。

我不知道有任何工具可以做到这一点,但是,鉴于您只对单个类的工作以及该类中的关系感兴趣,只需稍加努力,您就应该能够用您的脚本语言一起破解一些东西选择哪个

  1. 解析类中的所有函数名和变量声明并将它们存储在某处
  2. 使用来自步骤 1 的信息来识别变量使用、变量赋值和函数调用,以及这些发生的函数。
  3. 将此信息转换为使用的图形格式dot,然后使用 dot 生成显示依赖关系的有向图。

考虑到所涉及的努力,如果班级不是太大,我会很想用手做!

祝你好运,如果你确实找到了解决方案,我很乐意看到它。

于 2013-06-20T21:11:38.840 回答
-1

你看过pycallgraph吗?

此外,对于运行时调用,您可以使用 cProfile 运行 python 代码并使用 GProfToDot 查看

于 2013-06-18T10:38:12.413 回答