是否有PHP源文件的静态分析工具?
二进制本身可以检查语法错误,但我正在寻找做得更多的东西,比如:
未使用的变量赋值 未初始化就被赋值的数组 可能还有代码风格的警告 ...
是否有PHP源文件的静态分析工具?
二进制本身可以检查语法错误,但我正在寻找做得更多的东西,比如:
未使用的变量赋值 未初始化就被赋值的数组 可能还有代码风格的警告 ...
当前回答
你可能想尝试用Facebook的HipHop编译。
它对整个项目进行静态分析,可能就是你要找的。
GitHub页面
其他回答
有一个新的PHP工具叫做nWire。它是一个用于Eclipse PDT和Zend Studio 7.x的代码探索插件。它为PHP提供了实时代码分析,并提供了以下工具:
代码可视化——组件和关联的交互式图形表示。 代码导航-独特的导航视图显示所有的关联,并与您一起编写或阅读代码。 快速搜索-搜索方法,字段,文件等。
为了完整起见,还要检查phpCallGraph。
参见Semantic Designs的克隆检测工具CloneDR,它可以发现复制/粘贴/编辑的代码。
它将找到精确的和接近错误的代码片段,尽管有空白,注释,甚至变量重命名。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 Mess Detector非常棒,而且速度很快。