是否有PHP源文件的静态分析工具?
二进制本身可以检查语法错误,但我正在寻找做得更多的东西,比如:
未使用的变量赋值 未初始化就被赋值的数组 可能还有代码风格的警告 ...
是否有PHP源文件的静态分析工具?
二进制本身可以检查语法错误,但我正在寻找做得更多的东西,比如:
未使用的变量赋值 未初始化就被赋值的数组 可能还有代码风格的警告 ...
当前回答
在线PHP lint
PHPLint
单元变量检查。不过,Link 1和2似乎已经很好地做到了这一点。
不过,我不能说我密集地使用了其中的任何一个:)
其他回答
NetBeans IDE检查语法错误、不常用的变量等。它不是自动的,但对于小型或中型项目来说效果很好。
有一个新的PHP工具叫做nWire。它是一个用于Eclipse PDT和Zend Studio 7.x的代码探索插件。它为PHP提供了实时代码分析,并提供了以下工具:
代码可视化——组件和关联的交互式图形表示。 代码导航-独特的导航视图显示所有的关联,并与您一起编写或阅读代码。 快速搜索-搜索方法,字段,文件等。
有一个用于PHP脚本漏洞的静态源代码分析器。RIPS的源代码可以在SourceForge上找到。
来自RIPS网站:
RIPS is a tool written in PHP to find vulnerabilities in PHP applications using static code analysis. By tokenizing and parsing all source code files RIPS is able to transform PHP source code into a program model and to detect sensitive sinks (potentially vulnerable functions) that can be tainted by userinput (influenced by a malicious user) during the program flow. Besides the structured output of found vulnerabilities RIPS also offers an integrated code audit framework for further manual analysis.
我尝试过使用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.
参见Semantic Designs的克隆检测工具CloneDR,它可以发现复制/粘贴/编辑的代码。
它将找到精确的和接近错误的代码片段,尽管有空白,注释,甚至变量重命名。PHP的检测报告样本可以在网站上找到。(我是作者。)