1

我们的大多数项目都是 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" />

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

4

1 回答 1

4

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

WordPress 核心 ruleset.xml 文件包含以下部分:

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

默认情况下, sniff 强制在左大括号之后PEAR.Functions.FunctionCallSignature有空格,在右大括号之前有空格,这正是您想要的。但是 WordPress 标准将这些设置更改为空格。001

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

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

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

于 2017-05-24T00:17:40.100 回答