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


cleanup unused code in a large php project

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

Facebook的HipHop也有一个非常快的静态代码分析器,这将有助于。Etsy的Nick Galbreath在http://www.slideshare.net/nickgsuperstar/static-analysis-for-php上做了一个很好的介绍

如果问题是清理死代码,首先让找到死代码。

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

死变量更难;您需要数据访问覆盖信息。我不知道

我不知道有哪个静态分析器能可靠地告诉你代码/变量是否已经死亡。(HipHop,在另一个答案中提到,可能能够为一些方法做到这一点,特别是对于局部变量,但是eval可以导致任何函数被调用或任何变量被引用,所以在PHP中很难做到这一点。

然后您可以决定是否要删除无效代码,或者保留它以改进未来的进化。

.

如果您启用了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";
        }
    }
}

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