我想对我们的phpcs验证做一个PEAR标准的小改动。目前,PEAR要求你写下这样的其他语句:
} else {
我们想这样写:
}
else {
如何进行此更改?
答案 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',
并查看是否有效。