清理大型php项目中未使用的代码

时间:2013-06-05 09:54:58

标签: php refactoring

是否有任何监控,分析工具可以帮助清理死文件,变量,函数和重构大型,相对凌乱的php项目/框架?

4 个答案:

答案 0 :(得分:2)

Facebook的HipHop还有一个非常快速的静态代码分析器,它将有所帮助。 Etsy的Nick Galbreath在http://www.slideshare.net/nickgsuperstar/static-analysis-for-php

上做了很好的演讲

答案 1 :(得分:2)

如果问题是清除死代码,首先你找到死代码。

您可以使用测试覆盖率工具(我的公司提供其中之一)来找出可能已经死亡的代码。通过单元测试或简单地运行应用程序一天来执行大量功能;没有方法X的覆盖意味着X可能已经死了。

死亡变量更难;您需要数据访问覆盖率信息。我不知道 用于PHP的任何此类工具。

我不知道任何静态分析器能够可靠地告诉您代码/变量是否已经死亡。 (在另一个答案中提到的HipHop可能能够为某些方法执行此操作, 特别是对于局部变量,但是 eval 可以导致调用任何函数或者引用任何变量,因此很难在PHP中实现这一点。

然后您可以决定是否要删除死代码,或者保留它以改善未来的演变。

答案 2 :(得分:1)

试试http://jenkins-ci.org/,有许多代码分析工具的插件,可以查找凌乱的PHP等。

答案 3 :(得分:1)

如果您启用了Opcache并且所有代码都适合缓存,则可以使用以下代码段找到未缓存(因此可能未使用)的PHP文件:

$di = new RecursiveDirectoryIterator(__DIR__ . '/src');
foreach (new RecursiveIteratorIterator($di) as $filename => $file) {
    if (substr($filename, -strlen('.php')) === '.php') {
        if (!opcache_is_script_cached($filename)) {
            echo $filename . "\n";
        }
    }
}