PHP_CodeSniffer、PHPMD 或 PHP 取决于

发布于 2024-11-07 08:38:12 字数 128 浏览 4 评论 0原文

我正在考虑对现有 PHP 项目进行一些静态代码分析,但我无法理解 PHP_CodeSniffer、PHPMD 和 PHP Depend 之间的区别。这些只是同一问题的替代方案,还是在某些方面相互补充?为什么开发人员会选择其中一种而不是另一种?

I am looking at doing some static code analysis of an exisiting PHP project, and I'm having trouble understanding the distinctions between PHP_CodeSniffer, PHPMD, and PHP Depend. Are these simply alternatives to the same problem, or do they complement each other in some ways? Why might a developer choose one over the other?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏尔 2024-11-14 08:38:12

来自 http://phpqatools.org 的无耻复制

取决于

pdepend 可以从给定的代码库生成大量软件指标。这些值可用于衡量软件项目的质量,并且有助于确定应用程序中应应用代码重构的部分。

phpmd

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

phpcs

phpcs 对 PHP、JavaScript 和 CSS 文件进行标记,并检测是否违反一组已定义的编码标准。它是一个重要的开发工具,可确保您的代码保持干净和一致。它还可以帮助防止开发人员犯的一些常见语义错误。

所以不,它们不仅仅是替代品。 PDepend 和 PMD 专注于软件指标,而 PHPCS 根据令牌流中的模式定义规则。 PDepend 丝毫不关心是否发现违反编码标准的行为。您应该使用它们全部三个。如果可能的话,在您的持续集成服务器中,例如 Jenkins

Shameless copy from http://phpqatools.org

pdepend

pdepend can generate a large set of software metrics from a given code base. These values can be used to measure the quality of a software project and they help to identify the parts of an application where a code refactoring should be applied.

phpmd

phpmd scans PHP source code and looks for potential problems such as possible bugs, dead code, suboptimal code, and overcomplicated expressions.

phpcs

phpcs tokenises PHP, JavaScript and CSS files and detects violations of a defined set of coding standards. It is an essential development tool that ensures your code remains clean and consistent. It can also help prevent some common semantic errors made by developers.

So no, they are not just alternatives. PDepend and PMD focus on on software metrics while PHPCS defines rules based on patterns in the token stream. PDepend doesnt care the slightest about finding Coding Standard violations. You should use all three of them. If possible in your Continuous Integration server, for instance Jenkins.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文