15

我最近继承了一个没有对象/模块/命名空间的大型 PHP 应用程序......只有很多包含函数的文件。

当然,有很多依赖项(以及所有文件,几乎总是包括在内)。

我正在寻找一种可以分析文件并生成依赖关系图的工具。然后更容易检测独立文件/文件集并重构整个事情。

到目前为止,我发现的最佳解决方案是编写一个 CodeSniffer 嗅探器来检测所有函数调用,然后使用它来生成图形。

它似乎对其他人有用,所以我确信工具已经存在。

你会推荐什么 ?

4

2 回答 2

10

我认为最好的解决方案是使用文档生成器 + Grapviz,PHPDocumentor 看起来在https://github.com/phpDocumentor/GraphViz有一个 Grapviz 扩展

这是使用 PHPDocumentor 制作的示例:http: //demo.phpdoc.org/Clean/graphs/classes.svg

您也可以使用像 xhprof ( https://github.com/facebook/xhprof ) 这样的分层分析器,这可以绘制一个包含所有从执行中调用函数的树。

Graphviz 完成的示例表单 xhprof 绘制 Graphviz 完成的示例表单 xhprof 绘制

于 2013-10-10T05:55:20.857 回答
4

我可以推荐一个我几天前写的轻量级项目。基本上我有一个 300 多个文件的 PHP 项目,我想检测这些文件需要/包含哪些文件,反之亦然。此外,我想检查每个单独的文件该文件需要/包含哪些文件(直接或间接,即通过文件继承),反之亦然:包含此特定文件的文件是什么。对于这些的任何组合,我想要一个交互式依赖图(基于文件包含而不是类/函数调用/使用)。

查看项目的沙箱及其源代码

请注意,整篇文章只用了 2 天时间写完,所以不要判断它太苛刻。重要的是它正在做它的工作!

于 2015-04-16T09:45:33.373 回答