3

我有一个项目同时使用 PHPMD(PHP Mess Detector)和 PHPCS(PHP Code Sniffer),这让我想知道是否所有 PHPMD 检查都可以用 PHPCS 检查替换,还是最好同时使用两者?

PHPMD 检查的列表似乎在这里:https ://phpmd.org/rules/index.html但我没有找到任何关于 PHPMD 提供的好处的信息。

4

1 回答 1

5

PHP Code Sniffer 主要用于检测违反给定编码标准(如 PSR-2)的情况。它具有不同样式的配置,您可以手动配置每个规则。

PHP Mess Detector 更关注代码本身的质量——比如函数的复杂性、不必要的结构、定义干净代码的规则等。类似地,你可以配置每个预定义的规则——无论你是否希望它们被应用,以及某些检查的可能阈值。

回答您的问题 - 是的,所有 PHP MD 规则都可以编写为 CodeSniffer 嗅探器,但在有人有时间和耐心这样做之前 - 我们可以继续使用两者:)

例如,一些 PHPMD 规则已经存在于 PHPCS 中,例如复杂性规则: https ://github.com/squizlabs/PHP_CodeSniffer/blob/master/src/Standards/Generic/Sniffs/Metrics/CyclomaticComplexitySniff.php

此外,对于 PHPMD 中的函数/方法大小和其他类似检查,这里有一个 PHPCS 标准,其中包含其中一些:

https://github.com/object-calisthenics/phpcs-calisthenics-rules

如果你真的喜欢模仿一切,你可以搜索更多。并自己填写缺失的部分。

但在大多数情况下,如果您没有时间、耐心或一些硬件/计算/时间限制,您可以同时使用它们,而不必费心将它们组合起来。

于 2020-04-04T22:10:55.770 回答