今天我学到的:为什么PHPMD和SonarCloud并不总是一致

今天我学到的:为什么PHPMD和SonarCloud并不总是一致

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

在使用SonarCloud和PHPMD限制类中公共方法数量时,PHPMD默认忽略以get、set、is、has、with开头的方法,导致SonarCloud标记更多问题。为确保所有方法都被计算,需要在PHPMD中设置正则表达式为(!)i,以保持一致性。

🎯

关键要点

  • 在使用SonarCloud和PHPMD限制公共方法数量时,PHPMD默认忽略以get、set、is、has、with开头的方法。
  • SonarCloud标记的问题数量比PHPMD多,因为SonarCloud不忽略这些方法。
  • PHPMD的默认行为是使用正则表达式忽略特定前缀的方法。
  • 为了确保所有方法都被计算,需要在PHPMD中设置正则表达式为(!)i。
  • 通过设置正则表达式,PHPMD和SonarCloud的规则执行变得一致。
  • PHPMD的文档没有完全说明其默认规则,可能会导致误解。
  • 不同工具的行为可能不同,即使它们看似检查相同的内容。
  • 使用正则表达式可以确保PHPMD计算所有方法,避免遗漏。

延伸问答

PHPMD和SonarCloud在公共方法数量限制上有什么不同?

PHPMD默认忽略以get、set、is、has、with开头的方法,而SonarCloud则不忽略这些方法,因此标记的问题数量更多。

如何确保PHPMD和SonarCloud的一致性?

需要在PHPMD中设置正则表达式为(!)i,以确保所有方法都被计算。

PHPMD的默认行为是什么?

PHPMD默认使用正则表达式忽略以特定前缀开头的方法,具体包括get、set、is、has和with。

为什么SonarCloud会标记更多问题?

因为SonarCloud不忽略以特定前缀开头的方法,而PHPMD会忽略这些方法。

如何配置PHPMD以计算所有方法?

可以通过设置ignorepattern为(!)i来配置PHPMD,以确保不忽略任何方法。

PHPMD的文档是否完整?

PHPMD的文档没有完全说明其默认规则,可能会导致用户误解。

➡️

继续阅读