在PHP中查找双定义函数

在PHP中查找双定义函数,php,function,static-analysis,duplicate-removal,Php,Function,Static Analysis,Duplicate Removal,我在一个php项目中与多个独立的开发人员一起工作,最近我们遇到了一个案例,其中两次定义了一个函数getmicrotime() 所有这些都很好,因为它们是在不同的文件中定义的,而这些文件并没有包含在一个调用中。。。直到一些重构 在standardcase中,php只会输出一个致命错误,但在这里输出被阻止。(因为第三方网站称为网站…)所以我们没有得到输出,只得到了信息,没有任何东西再起作用了 切中要害: 是否有任何方法、外部脚本等来检查同名函数是否在项目中定义了两次 我想到了雷格。expr sear

我在一个php项目中与多个独立的开发人员一起工作,最近我们遇到了一个案例,其中两次定义了一个函数getmicrotime()

所有这些都很好,因为它们是在不同的文件中定义的,而这些文件并没有包含在一个调用中。。。直到一些重构

在standardcase中,php只会输出一个致命错误,但在这里输出被阻止。(因为第三方网站称为网站…)所以我们没有得到输出,只得到了信息,没有任何东西再起作用了

切中要害: 是否有任何方法、外部脚本等来检查同名函数是否在项目中定义了两次

我想到了雷格。expr search,但当然类方法可以有相同的名称,如a::meth1和b:meth1。。。。所以这并不容易

我说的是一个有10万行丑陋代码的项目。。。因此,手动检查是不可能的


提前谢谢

考虑静态代码分析。我建议使用Sonar+PHP插件:

以下是其工作原理的实例:


您总是可以编写一个简单的脚本(即perl或python)来查找所有重复的脚本。算法将很简单…

有一些外部工具,比如查找重复的代码块,或者您可以编写自己的lexer;但是具有重复名称的函数在PHP中是完全有效的,只要它们的名称空间不同