有效删除大块PHP

时间:2010-03-01 22:41:46

标签: php refactoring

我刚刚继承了一个项目,并被告知由于许可问题需要删除整个文件夹“includes /” - 我们无权重新分发该文件夹中的文件,所以我们需要削减对它们的依赖,并修复任何中断。我被告知“该文件夹中只有不到5%的行甚至被我们的程序调用”,但我无法验证这一点。

文件夹中大约有50个文件,每个文件都有几百行代码。目前没有进行单元测试。有一个主文件,include.php,require()s所有49个其他文件,所以我不能只为import() includes/.*上的任何文件执行grep。

这与我此时已经弄清楚的细节差不多。我上周花了所有阅读包含/文件夹中的文件,并不难重写任何这些,但我无法决定从哪里开始。我试着删除文件夹并慢慢修复破坏的东西,但我担心这条路线会让我错过重写中的一些重要功能。

有人能指出我的方向开始吗?是否有可以简化此过程的工具?我现在正在看xdebug,但我不确定我是如何使用它的。

5 个答案:

答案 0 :(得分:2)

您可能想要搜索“php code coverage”。这应该可以帮助您找出使用的代码。例如,这似乎有点帮助:

http://www.xdebug.org/docs/code_coverage

答案 1 :(得分:0)

你最初的做法一点也不差。这当然是一个合理的起点:

  1. 删除不允许的代码。
  2. 尝试运行剩下的东西。
  3. 如果事情中断:为现在缺少的方法创建存根,并将其设置为现在返回一些合理的“默认”值。
  4. 转到2。
  5. 然后,逐条列出所有遗漏的东西,制定合理的时间表来重新实施每件事。

答案 2 :(得分:0)

我首先要点击引用include.php的文件。如果它们可以管理,请逐一检查。然后我会为/ include / * php文件中的每个函数grep。看看他们是否在任何地方被召唤,找到他们,替换他们。

因为PHP是动态类型的,所以我认为不会有这样的工具。

(急切地等待某人证明我错了,因为我一直都有类似的任务......)

答案 3 :(得分:0)

SD PHP Test Coverage Tool。它将提供实际执行代码的可视化视图,以及有关使用文件的哪些部分的报告(包括“无部分”,这是您的提示, 代码可能是删除的候选者。)

它不需要对您的代码进行任何手动修改,也不需要任何单元测试来运行它。

答案 4 :(得分:0)

为了回答我自己的问题,我最终使用xdebug探测器来完成这项工作,就像我最初调查一样(在朋友的建议促使我再看一下之后)。

在我的/etc/php5/apache2/conf.d/xdebug.ini(在ubuntu 9.10上),我设置了xdebug.profiler_enable=1xdebug.profiler_output_dir=/var/log/xdebug/,然后加载了{{3}生成的cachegrind文件然后在“includes /".

上搜索文件名

现在我有一大堆工作要求将这一切删除,但至少我对我将要修改的内容有了很好的了解!