有效地收集有关新 PHP 项目内部工作原理的信息。工具?技术?脚本?

2022-08-30 23:42:10

我很快就会加入一个经过几年开发的PHP项目。这将是巨大的,稀疏的记录,许多文件,成堆的代码,没有一致的质量水平是可以预期的。

您将如何收集尽可能多的有关正在发生的事情的信息?

  • 自动加载不是预期的,至少不是广泛地,所以包含可能会很好地揭示相互依赖关系。

  • phpDocumentor消化项目文件可能会给出一个关于存在哪些类/方法/函数的想法。

  • 也许是phpCallGraph用于方法/函数关系。

  • 使用 XDebug 分析一些通用用例,以了解有关层次结构和概念的了解。

  • 正在检查重要的日志文件...检查警告,已弃用的用法,错误。

  • phpinfo().

  • 也许提取所有评论并将它们处理成html文件。

没有涵盖单元测试,数据库,....

你会怎么做?您对上述工具有什么经验,可以充分利用它们?

您可以假设任何必要的条件。

哪些统计信息可用于提取?

有人使用这些工具吗?

编辑“PHP质量检查工具”

编辑2来自布莱恩沃特斯的答案:

为PHP项目设置部署/构建/CI周期 - 由Pekka建议

编辑 3

刚刚发现这个PDF的Gabriele Santini的演讲 - “代码的统计分析 - 听你的PHP代码”。这就像一座金矿。


答案 1

我同意你的问题确实有大部分答案。

这就是我可能会做的。我可能会从Sebastian Bergman的工具开始,特别是phploc,这样你就可以了解你正在查看的混乱(代码库)的范围。它为您提供类,函数计数等,而不仅仅是代码行。

接下来,我会查看apache日志或Google分析,并获得前10个最需要的php url。我会通过分析设置XDebug,并运行前10个请求并获取文件,调用树。(您可以使用缓存器工具查看这些内容)

最后,我通读了其中1两条迹线的整个执行路径,这是最能代表整体的。我会使用我的Eclipse IDE,但将它们打印出来并带着荧光笔去镇上也是有效的。

如果有多个系统拼凑在一起,则前10种方法可能会让您失望。您应该使用Xdebug快速查看前10个是否编码,如果每个岛屿都是一个独特的岛屿,则类似。

我会查看mysql数据库并尝试了解它们的全部用途,从空间上查看表前缀,您可能会有几个不同的应用程序堆叠在一起。如果有大部分数据库没有被前10名触及,你需要去寻找子应用程序。如果找到其他子应用,请通过 xdebug 探查器运行它们,然后通读代表该子应用的路径之一。

现在回过头来看看你的 phploc 范围编号,看看在你的审查过程中,有多少百分比的代码库(可能是计数类或函数)未被触及。

您应该对最常运行的代码有基本的了解,并了解有多少个用于骨架存储的角落,缝隙和壁橱。


答案 2

也许您可以设置一个持续集成环境。在这个环境中,您可以收集所需的所有统计信息。

Jenkins是一个很好的CI服务器,有大量的插件和文档。


推荐