配置 phpcs 以在右括号之后和右括号之前禁止空格

Configuring phpcs to disallow spaces after closing bracket and before closing bracket

我们的大部分项目都是 WordPress,虽然我们同意它设定的大部分编码标准,但有些我们不同意并且不想在我们的 自己的私人项目中使用。由于开发人员在网上找到的复制粘贴解决方案,这些分歧的一部分仍然以某种方式最终出现在代码库中,我想用 phpcs 来防止这种情况发生。不仅因为复制粘贴有问题(这些代码片段的质量通常很糟糕),还因为它更难阅读和编辑。

这是 WordPress 告诉您的方式:fn_call( array( 1, 2, 3 ) );

我们是这样做的:fn_call([1, 2, 3]);

我找到了一种从 WordPress 编码标准中排除这些规则的方法

<exclude name="PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket" />
<exclude name="PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket" />
<exclude name="WordPress.Arrays.ArrayDeclaration.NoSpaceAfterOpenParenthesis" />

但是我如何强制不应该有空格?我找不到任何东西。

您实际上并不想排除这 2 个 PEAR 规则。您需要覆盖 WordPress 标准使用的设置,将其从 1 required space 更改为 0 required spaces.

WordPress Core ruleset.xml file 包括此部分:

<rule ref="PEAR.Functions.FunctionCallSignature">
    <properties>
        <property name="requiredSpacesAfterOpen" value="1"/>
        <property name="requiredSpacesBeforeClose" value="1"/>
    </properties>
</rule>

默认情况下,PEAR.Functions.FunctionCallSignature 嗅探强制在左大括号之后有 0 spaces,在右大括号之前有 0 spaces大括号,这正是你想要的。但是 WordPress 标准将这些设置更改为 1 space.

在您的 ruleset.xml 文件中,在包含 WordPress 标准后,将此部分放入:

<rule ref="PEAR.Functions.FunctionCallSignature">
    <properties>
        <property name="requiredSpacesAfterOpen" value="0"/>
        <property name="requiredSpacesBeforeClose" value="0"/>
    </properties>
</rule>

以及您想要的任何其他排除项。但不要排除 PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracketPEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket 错误消息,否则您的函数调用不会出现任何错误。