有哪些工具可用于可视化类内依赖项(例如PHP)?

时间:2013-06-11 15:54:20

标签: php python code-analysis

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

如果有人可以推荐我使用这样的工具(最好是PHP和Python),我会很感激。

4 个答案:

答案 0 :(得分:1)

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.

答案 1 :(得分:0)

答案 2 :(得分:0)

虽然很多建议指向pycallgraphphpcallgraph我认为这些不会做你想做的事情 - 这些是用于运行时分析,而你想听到的是什么静态分析。

我不知道有任何这方面的工具,但是,鉴于你只对单个类的工作和该类中的关系感兴趣,只需要一点努力,你就应该能够在一起攻击一些东西。

你选择的脚本语言
  1. 解析类中的所有函数名和变量声明并将它们存储在某个地方
  2. 使用步骤1中的信息来识别变量用法,变量赋值和函数调用,以及发生这些变量的函数。
  3. 将此信息转换为dot使用的图表格式,然后使用点生成显示依赖关系的有向图。
  4. 考虑到所涉及的努力,如果课程不是大,我会被诱惑只是手工完成!

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

答案 3 :(得分:-1)

你看过pycallgraph了吗?

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

查看它