19

寻找能够分析 php 代码(即所有 wordpress 或主题)并向我展示所有连接的漂亮图片(可能是框图)的软件,以帮助我更快地了解事物在哪里以及与哪些事物相关联.

理想情况下,这个软件可以在 Mac 上运行,但我会选择任何东西:Windows、Linux、基于 Web 的等等。

4

6 回答 6

4
  • KCachegrind - 使用 Xdebug,您可以分析脚本的执行,KCachegrind 可以从中生成一些非常棒的调用图
  • 用于 Eclipse 的nwire
于 2010-02-23T16:55:02.047 回答
4

[更新:这个答案不处理命名空间,所以基本上已经过时了。我会把它留在这里,以防有人觉得 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

于 2012-11-26T23:44:26.940 回答
2

也许http://phpcallgraph.sourceforge.net/用于静态分析。

它可以输出各种格式。

于 2011-03-23T08:42:50.950 回答
1

BOUML可以用现有的 PHP 代码制作 UML 图

于 2011-03-23T09:05:24.430 回答
0

nWire 已过时,不支持最新的 PHP 版本(命名空间)。Visual Paradigm 的社区版本对非商业项目是免费的,但在最新的 PHP 版本上也失败了。

phUML是非常有用的免费工具。它不再维护,但仍然适用于 PHP 5。Mac 用户也应安装graphviz

于 2015-07-21T13:32:47.097 回答
-4

试试 JB Graph

如果你擅长 java 脚本,那么试试 D3.js

https://d3js.org/

于 2016-03-15T06:46:42.377 回答