【问题标题】:What's a good standard to use with PHP_CodeSniffer?与 PHP_CodeSniffer 一起使用的好标准是什么?
【发布时间】:2014-02-12 20:05:49
【问题描述】:

我的代码库遵守(或应该)遵守 Zend 编码标准。我一直在使用带有 PHP_CodeSniffer 的 Zend 标准,但我看到讨论说用于 phpcs 的 Zend 标准不一致且未维护,并且不一定坚持 Zend 编码标准。因此,我正在寻找一个更加一致、当前和广泛使用的标准。我应该使用什么?

我听说过“Squiz”、“PEAR”和“PSR2”,但我对它们一无所知。它们之间有什么区别?

【问题讨论】:

    标签: php codesniffer


    【解决方案1】:

    存在细微差别,主要取决于您的使用方式,或者其他人强制执行的代码标准。

    PSR2 已被大多数框架采用。

    【讨论】:

      【解决方案2】:

      PEAR 标准是最基本的标准,也是大多数其他标准的演变而来。它已经存在了很长时间,但已经有一段时间没有更新了。它最初是由 PEAR 包(如 PHP_CodeSniffer)使用的,我认为它是一个很好的初学者标准。

      The PEAR standard contains 26 main checks.

      PSR2 标准相对较新,由 PHP-FIG 开发。许多框架正在以各种形式采用它。如果你想坚持一个,我认为这是选择的标准,你真的不知道该选择什么。

      The PSR2 standard contains 40 main checks.

      Squiz 标准是我在工作中使用的标准。我开发了 PHP_CodeSniffer,所以我使用的标准非常严格也就不足为奇了。这个还包含对 JS 和 CSS 文件的检查,因为它用于我们的大型 Web 应用程序。它绝对不是初学者标准,它会定期更改。但它包含许多可以纳入自定义编码标准的良好检查。

      The Squiz standard contains 124 main checks.

      所以我对您的建议是尝试 PSR2 标准,看看效果如何。如果您开始觉得它在小方面不适合您,您可以查看创建自己的 ruleset.xml 文件以创建您自己的自定义编码标准。这里有该过程的文档:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

      【讨论】:

      • 感谢您的回答! PSR2 是 PEAR 的超集吗?这意味着如果我的代码在本地通过 PSR2,它仍然会在构建服务器上通过 PEAR?还是 PEAR 中的检查与 PSR2 中的检查不同?
      • PSR2 不是 PEAR 的超集。现在想到一个很大的冲突,那就是 SWITCH 语句的缩进方式。 PEAR 以一种我没有见过任何其他标准的方式缩进 SWITCH 语句,因此它几乎与所有内容发生冲突。可能还有更多,但我认为如果您尝试并坚持两者,那将会吸引您。
      猜你喜欢
      • 2010-09-11
      • 2023-04-07
      • 1970-01-01
      • 2021-02-09
      • 2011-02-02
      相关资源
      最近更新 更多