修改phpcs的PEAR标准

Noo*_*les 5 php pear codesniffer

我想对我们的phpcs验证的PEAR标准进行一些小改动.目前,PEAR要求你写下这样的else语句:

} else {
Run Code Online (Sandbox Code Playgroud)

我们想写这样的:

}
else {
Run Code Online (Sandbox Code Playgroud)

我怎样才能做出这个改变?

Gre*_*ood 6

唯一的方法是使用ruleset.xml文件编写自己的编码标准.它需要导入整个PEAR编码标准,但不包括执行此检查的特定嗅探.这个位可以用单个XML文件完成.

但是没有内置的嗅探可以强制执行else您正在寻找的语法类型.因此,要强制执行此操作,您需要编写自定义嗅探器,这更复杂,因为您还必须将其存储在某处.

如果您想从尝试简单的自定义编码标准开始,请创建一个名为的文件ruleset.xml并将其作为内容:

<?xml version="1.0"?>
<ruleset name="MyStandard">
 <description>My custom coding standard.</description>
 <rule ref="PEAR">
  <exclude name="PEAR.ControlStructures.ControlSignature"/>
 </rule>
</ruleset>
Run Code Online (Sandbox Code Playgroud)

然后像这样运行PHP_CodeSniffer:

phpcs --standard=/path/to/ruleset.xml /path/to/code
Run Code Online (Sandbox Code Playgroud)

这将根据PEAR编码标准检查您的代码,但不包括对控制结构的特定检查.如果这就是你所需要的,你就可以到此为止.如果您有一组人想要运行此自定义标准,只需向他们提供文件,他们也可以使用它.

有关ruleset.xml格式的更多信息,请访问:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml

如果您想继续编写自定义嗅探器,最好从基本教程开始:http://pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial. PHP

这将解释编码标准是什么.然后,你将想要创建自己的嗅探,这只是PEAR的一个副本,对你如何控制结构有轻微的改变.PEAR嗅到这里:https://github.com/squizlabs/PHP_CodeSniffer/blob/master/CodeSniffer/Standards/PEAR/Sniffs/ControlStructures/ControlSignatureSniff.php

未经测试,我想你会想更改} else {EOL',到}EOLelse {EOL',,看看是否可行.