我有一个项目同时使用 PHPMD(PHP Mess Detector)和 PHPCS(PHP Code Sniffer),这让我想知道是否所有 PHPMD 检查都可以用 PHPCS 检查替换,还是最好同时使用两者?
PHPMD 检查的列表似乎在这里:https ://phpmd.org/rules/index.html但我没有找到任何关于 PHPMD 提供的好处的信息。
我有一个项目同时使用 PHPMD(PHP Mess Detector)和 PHPCS(PHP Code Sniffer),这让我想知道是否所有 PHPMD 检查都可以用 PHPCS 检查替换,还是最好同时使用两者?
PHPMD 检查的列表似乎在这里:https ://phpmd.org/rules/index.html但我没有找到任何关于 PHPMD 提供的好处的信息。
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
如果你真的喜欢模仿一切,你可以搜索更多。并自己填写缺失的部分。
但在大多数情况下,如果您没有时间、耐心或一些硬件/计算/时间限制,您可以同时使用它们,而不必费心将它们组合起来。