寻找能够分析php代码(即所有wordpress或主题主题)的软件,并向我展示所有连接的漂亮图片(可能是block diagram),以帮助我更快地了解所处的位置以及与之相关的内容什么。是否有任何PHP代码可视化工具?
理想的情况下,该软件会在Mac上运行,但我会采取什么:在Windows,Linux,基于网络的,等等
寻找能够分析php代码(即所有wordpress或主题主题)的软件,并向我展示所有连接的漂亮图片(可能是block diagram),以帮助我更快地了解所处的位置以及与之相关的内容什么。是否有任何PHP代码可视化工具?
理想的情况下,该软件会在Mac上运行,但我会采取什么:在Windows,Linux,基于网络的,等等
也许http://phpcallgraph.sourceforge.net/静态分析。
它可以输出为各种格式。
[更新的:这个答案不处理命名空间,所以基本上是过时的。如果有人发现DOT方法很有趣,我会留在这里。]
这里有一个简单的方法来绘制PHP中的类继承。
grep用于类定义,然后将grep输出转换为DOT语法。注意:此过程需要在您的情况下进行反复试验。单独运行grep,并在将它放入脚本之前调整它以显示正确的类定义行!
此脚本适用于标准* nix(我使用Ubuntu)的PHP,安装了graphviz,并使用grep -v排除一些不感兴趣的目录,因为我正在查看CakePHP代码库。在这种情况下,FDP比sfdp,dot,circo或neato工作得更好。
创建generateClassHierarchy.sh
#!/bin/bash
echo 'digraph code {' > code.dot;
grep -r "^class " * | grep -v "^app/vendors" | grep -v "^cake/" | grep -v "Binary file" | sed 's/.*://' | sed 's/class/ /' | sed 's/ extends/-> /' | sed 's/ implements .*//' | sed 's/ \?{.*$//' | sort >> code.dot
echo '}' >> code.dot;
fdp -Tpng -ocode.fdp.png code.dot 2> /dev/null # Ignore syntax error
echo "OK";
然后,只需:
cd /var/www/my_app/ # or wherever
bash ~/shell/generateClassHierarchy.sh # or wherever
eog code.fdp.png
使用您喜欢的图像浏览器替换EOG。我在Zend Framework上运行这个测试,并生成了一个22兆字节的PNG图。上运行它只是Zend_Db的显示你这个(例子是在我的网站):
http://chapman.id.au/generate-php-class-inheritance-diagrams-in-graphviz
不错,谢谢。我调整了一些东西,包括抽象类。第一位变成'egrep -r“^(抽象类| class)”注意你可以链接更多的grep和grep -v的东西来限制你想要操作的类。 – dbu 2014-05-21 09:27:42
,这是值得做这样的区分:
班/你的PHP代码的方法(静态代码分析)
我觉得有某种根本性错误关于博客软件的需要你有一个PHP代码的可视化理解设计的主题。 – 2010-02-23 16:54:27
http://www.nwiresoftware.com/想到。但它是商业的。 – Gordon 2010-02-23 17:00:03
@约翰不是真的,但是当你刚开始的时候,你很难摆脱困境。我在一些项目中希望得到这样的东西,但是我自己记住了他们的结构。 – 2010-02-23 17:07:03