PHPCS 忽略太多缩进

PHPCS ignoring too many indentations

我已经在 phpcs.xml 中更新了我的 phpcs 规则以包括:

  <rule ref="Generic.WhiteSpace.ScopeIndent">
    <properties>
      <property name="indent" value="2" />
    </properties>
  </rule>

效果很好,但是如果我有:

function test($x) {
        $string = 'Hello';
  return $string . $x;
}

没有出现错误,但如果没有缩进就会出现。我无法弄清楚似乎是什么问题。

默认情况下,Generic.WhiteSpace.ScopeIndent 嗅探不强制执行代码的精确对齐。它只强制行前至少 n 个空格或制表符。

例外情况是当它检查 IF 语句、FOREACH 循环或函数等控制结构时。它使用这些结构来确定其余代码的缩进规则,因此需要将这些结构缩进到精确的列。

您可以通过将 exact 嗅探 属性 设置为 true 来启用对所有行的精确检查。可以在此处找到如何执行此操作的示例:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Customisable-Sniff-Properties#genericwhitespacescopeindent