2011-05-15 41 views
32

我正在研究对现有PHP项目进行一些静态代码分析,并且我无法理解PHP_CodeSniffer,PHPMD和PHP Depend之间的区别。这些只是替代相同问题的替代方案,还是它们在某些方面相互补充?为什么开发者可能会选择一个呢?PHP_CodeSniffer,PHPMD或PHP Depend

回答

52

无耻拷贝从http://phpqatools.org

pdepend

pdepend可以产生从一个给定的代码库一大组软件度量的。这些值可用于衡量软件项目的质量,并有助于确定应用代码重构的应用程序的各个部分。

phpmd

phpmd扫描PHP源代码,并查找如可能的错误,死码,次优码,和过于复杂的表达式的潜在问题。

phpcs

phpcs tokenises PHP,JavaScript和CSS文件,并检测违反定义的一组编码标准。这是一个重要的开发工具,可确保您的代码保持整洁和一致。它还可以帮助防止开发人员所犯的一些常见语义错误。

所以不,他们不只是替代品。 PDepend和PMD专注于软件度量,而PHPCS则根据令牌流中的模式定义规则。 PDepend并不在乎寻找编码标准违规。你应该全部使用它们三个。如果可能,请在您的持续集成服务器上,例如Jenkins

+0

感谢您发布这样一个明确的答案,并积极鼓励我开始使用CI服务器。 – jmans 2011-05-15 20:13:59

+4

最近我们为PHP项目建立了Jenkins的所有三个(和更多),我可以衷心推荐所有三种工具。 – 2011-06-02 01:07:50

+1

仍然使用pdepend另外对phpmd还不清楚。 Phpmd也可以生成指标(并且具有辉煌的Jenkins插件),并且可以在PHPStorm中实时使用。 pdepend对我来说会做些什么我无法从phpmd中得到什么? – 2013-12-23 11:45:47