是否可以将所有 PHP 混乱检测器检查替换为 PHP 代码嗅探器检查?

Can all PHP mess-detecter checks be replaced with PHP code-sniffer checks?

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

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

PHP 代码嗅探器主要用于检测违反给定编码标准(如 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

还有 function/method 大小和 PHPMD 中的其他类似检查,这里是 PHPCS 的标准,其中有一些:

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

如果你真的喜欢模仿一切,你可以搜索更多。缺的自己补上。

但在大多数情况下,如果您没有时间、耐心或某些 hardware/compute/time 限制,您可以同时使用两者,而不必费心将它们结合起来。