修改phpcs的PEAR标准

时间:2012-11-22 02:08:30

标签: php pear codesniffer

我想对我们的phpcs验证做一个PEAR标准的小改动。目前,PEAR要求你写下这样的其他语句:

} else {

我们想这样写:

}
else {

如何进行此更改?

1 个答案:

答案 0 :(得分: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>

然后像这样运行PHP_CodeSniffer:

phpcs --standard=/path/to/ruleset.xml /path/to/code

这将根据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',并查看是否有效。