是否有PHP源文件的静态分析工具?

二进制本身可以检查语法错误,但我正在寻找做得更多的东西,比如:

未使用的变量赋值 未初始化就被赋值的数组 可能还有代码风格的警告 ...


当前回答

我尝试过使用php -l和其他一些工具。

然而,在我的经验中,最好的一个(当然,您的里程可能有所不同)是检查pfff工具集。我在Quora上听说过pfff(有好的PHP lint /静态分析工具吗?)

您可以编译并安装它。没有很好的软件包(在我的Linux Mint Debian系统上,我必须先安装libpcre3-dev、ocaml、libccairo -dev、libgtk-3-dev和libgimp2.0-dev依赖项),但它应该值得安装。

结果报告如下

$ ~/sw/pfff/scheck ~/code/github/sc/
login-now.php:7:4: CHECK: Unused Local variable $title
go-automatic.php:14:77: CHECK: Use of undeclared variable $goUrl.

其他回答

PHP PMD(编程错误检测器)和PHP CPD(复制/粘贴检测器)作为PHPUnit的前一部分。

为了完整起见,还要检查phpCallGraph。

NetBeans IDE检查语法错误、不常用的变量等。它不是自动的,但对于小型或中型项目来说效果很好。

有一个静态代码分析工具叫做PHP Analyzer。PHP Analyzer现在是一个已弃用的项目,但您仍然可以在遗留分支上访问它。

在许多类型的静态分析中,它还提供了基本的自动修复功能,请参阅文档。

有一个新的PHP工具叫做nWire。它是一个用于Eclipse PDT和Zend Studio 7.x的代码探索插件。它为PHP提供了实时代码分析,并提供了以下工具:

代码可视化——组件和关联的交互式图形表示。 代码导航-独特的导航视图显示所有的关联,并与您一起编写或阅读代码。 快速搜索-搜索方法,字段,文件等。