我们的大多数项目都是WordPress,虽然我们同意它设置的大多数编码标准,但我们不同意并且不想在我们的自己的私有项目中使用。由于他们在网上发现的开发人员密码解决方案,这些分歧的某些部分仍然最终存在于代码库中,并且我想用phpcs来防止这种情况。不仅因为copypasting有问题(这些代码片段的质量通常很糟糕),而且因为它更难以阅读和编辑。
这是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" />
但我如何强制执行应该没有空格?我找不到任何相关内容。
答案 0 :(得分:2)
您实际上并不想排除这2条PEAR规则。您希望覆盖WordPress标准使用的设置,将其从1
所需空间更改为0
所需空格。
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
个空格,并且在大括号之前有0
个空格,这正是你想要的。但WordPress标准将这些设置更改为1
空间。
在ruleset.xml文件中,在您包含WordPress标准之后,请填写此部分:
<rule ref="PEAR.Functions.FunctionCallSignature">
<properties>
<property name="requiredSpacesAfterOpen" value="0"/>
<property name="requiredSpacesBeforeClose" value="0"/>
</properties>
</rule>
与您想要的任何其他排除项一起使用。但请勿排除PEAR.Functions.FunctionCallSignature.SpaceBeforeCloseBracket
和PEAR.Functions.FunctionCallSignature.SpaceAfterOpenBracket
错误消息,否则您的函数调用不会出现任何错误。