寻找能够分析 php 代码(即所有 wordpress 或主题)并向我展示所有连接的漂亮图片(可能是框图)的软件,以帮助我更快地了解事物在哪里以及与哪些事物相关联.
理想情况下,这个软件可以在 Mac 上运行,但我会选择任何东西:Windows、Linux、基于 Web 的等等。
寻找能够分析 php 代码(即所有 wordpress 或主题)并向我展示所有连接的漂亮图片(可能是框图)的软件,以帮助我更快地了解事物在哪里以及与哪些事物相关联.
理想情况下,这个软件可以在 Mac 上运行,但我会选择任何东西:Windows、Linux、基于 Web 的等等。
[更新:这个答案不处理命名空间,所以基本上已经过时了。我会把它留在这里,以防有人觉得 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
也许http://phpcallgraph.sourceforge.net/用于静态分析。
它可以输出各种格式。
BOUML可以用现有的 PHP 代码制作 UML 图