我正在寻找一种易于使用的工具,它可以可视化类的“内部工作”,例如用 PHP 编写的。我想看到的是不同的类方法,以及它们是如何相关的(方法 A 调用方法 B 等)。有没有这样的工具来创建这样的图表?在进一步的步骤中,也许有一个工具也可以可视化一个类的“内部工作”(以逆向工程的方式)工作流的真实情况,即所有if-else
决策等,在什么情况下调用什么方法?
如果有人可以向我推荐这样的工具(最好是 PHP 和 Python),我将不胜感激。
我正在寻找一种易于使用的工具,它可以可视化类的“内部工作”,例如用 PHP 编写的。我想看到的是不同的类方法,以及它们是如何相关的(方法 A 调用方法 B 等)。有没有这样的工具来创建这样的图表?在进一步的步骤中,也许有一个工具也可以可视化一个类的“内部工作”(以逆向工程的方式)工作流的真实情况,即所有if-else
决策等,在什么情况下调用什么方法?
如果有人可以向我推荐这样的工具(最好是 PHP 和 Python),我将不胜感激。
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。
您可以尝试http://phpcallgraph.sourceforge.net/或来自 github 的这个要点(https://gist.github.com/sebastianbergmann/625915)
尽管很多建议都指向pycallgraph
并且phpcallgraph
我认为这些不会做您想做的事情-这些是用于运行时分析,而听起来您想做静态分析。
我不知道有任何工具可以做到这一点,但是,鉴于您只对单个类的工作以及该类中的关系感兴趣,只需稍加努力,您就应该能够用您的脚本语言一起破解一些东西选择哪个
dot
,然后使用 dot 生成显示依赖关系的有向图。考虑到所涉及的努力,如果班级不是太大,我会很想用手做!
祝你好运,如果你确实找到了解决方案,我很乐意看到它。
你看过pycallgraph吗?
此外,对于运行时调用,您可以使用 cProfile 运行 python 代码并使用 GProfToDot 查看它