PHP文件是否有静态代码分析器[如Lint]?

时间:2008-12-18 19:39:58

标签: php lint

PHP文件是否有静态代码分析器?二进制本身可以检查语法错误,但我正在寻找更多的东西,比如未使用的变量赋值,分配的数组,而不是先被初始化,以及可能的代码样式警告。开源程序将是首选,但如果强烈推荐,我们可能会说服公司支付费用。

12 个答案:

答案 0 :(得分:346)

从命令行以lint-mode运行php以验证语法而不执行:

php -l FILENAME

高级静态分析仪包括:

低级分析仪包括:

运行时分析器,由于PHP的动态特性,对某些事情更有用,包括:

文档库phpdocdoxygen执行一种代码分析。例如,Doxygen可以配置为使用graphviz呈现漂亮的继承图。

另一个选项是xhprof,类似于xdebug,但更轻,使其适用于生产服务器。该工具包括一个基于PHP的界面。

答案 1 :(得分:38)

Online PHP lint

PHPLint

Unitialized variables check。但是,链接1和2似乎已经很好了。

我不能说我已经集中使用了其中任何一种,但是:)

答案 2 :(得分:27)

为了完整性 - 还要检查phpCallGraph

答案 3 :(得分:23)

PHP Mess Detector非常棒且速度很快。

答案 4 :(得分:17)

我尝试过使用$ php -l和其他工具。然而,根据我的经验(YMMV,当然)中最好的是scheck of pfff toolset。我在Quora(http://www.quora.com/Is-there-a-good-PHP-lint-static-analysis-tool

上听说过pfff

您可以编译并安装它。没有很好的软件包(在我的薄荷Debian上,我必须首先安装libpcre3-dev,ocaml,libcairo-dev,libgtk-3-dev和libgimp2.0-dev依赖项)但它应该值得一个intsall。

结果报告如

rjha@mint ~ $ ~/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.

答案 5 :(得分:14)

请参阅Semantic Designs' CloneDR,一个“克隆检测”工具,可找到复制/粘贴/编辑的代码。尽管有空格,注释甚至可变的重命名,它仍会找到精确和接近错过的代码片段。可以在wesite找到PHP的样本检测报告。 (我是作者)。

答案 6 :(得分:7)

NetBeans IDE会检查语法错误,未使用的变量等。它不是自动化的,但适用于中小型项目。

答案 7 :(得分:6)

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

  • 代码可视化 - 组件和关联的交互式图形表示。
  • 代码导航 - 独特的导航视图显示了所有关联,并在您编写或读取代码时与您合作。
  • 快速搜索 - 在您输入方法,字段,文件等时搜索

答案 8 :(得分:5)

PHP PMD(项目混乱检测器)和PHP CPD(复制粘贴检测器)作为PHPUnit的前一部分

答案 9 :(得分:4)

RIPS - A static source code analyser for vulnerabilities in PHP scripts。 RIPS的来源可在SourceForge获得。

来自RIPS网站:

  

RIPS是一个用PHP编写的工具,用于查找PHP中的漏洞   应用程序使用静态代码分析通过标记和解析所有   源代码文件RIPS能够将PHP源代码转换为   程序模型和检测敏感的汇(可能是脆弱的   功能)可能被用户输入污染(受恶意攻击   用户)在程序流程中。除了找到的结构化输出   漏洞RIPS还提供了一个集成的代码审计框架   进一步的人工分析。

答案 10 :(得分:3)

有一种名为PHP Analyzer的静态代码分析绝对新工具。

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

更新:PHP-Analyzer现已弃用,但您仍可以在旧版分支上访问它

答案 11 :(得分:2)

您可能想尝试使用Facebook的hiphop进行编译。

它对整个项目进行静态分析,可能就是你要找的东西。

https://github.com/facebook/hiphop-php