4

我在这里问了一个问题,因为我所有的 Php 代码都缩进了 2,而不是 4。

Php CodeSniffer 是一个非常棒的工具,缩进为“4”,您似乎无法更改该值。

Php CodeSniffer 有很多选择。所以这应该很容易添加“缩进宽度”。但似乎创作者自愿避免了这种可能性,因为这是不可能的(恕我直言,这很奇怪)。

所以如果你不能改变这一点,我想知道:“缩进宽度 = 4”是事实上的标准吗?

这对于 Java/JavaDoc 生成是否相同?

我是否必须将所有 10.000 多行代码更改为 4 - 缩进宽度?

4

4 回答 4

8

嗅探器中的任何公共成员 var 都可以使用 ruleset.xml 文件进行覆盖。ruleset.xml 文件是您自己的自定义编码标准的 XML 表示。它可以从任何包含的标准导入嗅探,如果您选择编写它们,还可以包含您自己的自定义嗅探。

在您的情况下,您需要确切的 PEAR 标准,但缩进值已更改。因此,创建一个文件mystandard.xml并将其作为内容:

<?xml version="1.0"?>
<ruleset name="MyStandard">
 <description>My custom PEAR coding standard.</description>
 <rule ref="PEAR"/>
 <rule ref="PEAR.WhiteSpace.ScopeIndent">
  <properties>
   <property name="indent" value="2"/>
  </properties>
 </rule>
</ruleset>

phpcs --standard=PEAR ...现在,不要使用您使用的命令运行 PHP_CodeSnifferphpcs --standard=/path/to/mystandard.xml ...

请注意,您可以随意调用标准并将 XML 元数据(名称和描述)更改为更合适的名称。

您可以使用自定义 ruleset.xml 文件执行更多操作。您可以在此处找到有关自定义规则集的更多信息:http: //pear.php.net/manual/en/package.php.php-codesniffer.annotated-ruleset.php

于 2012-04-15T00:23:12.793 回答
2

不,这不是事实上的标准。缩进没有标准。

您可以使用 --sniffs 选择规则——请参阅手册。您不需要进行压痕测试。

如果 PHP CodeSniffer 好用,那么可以在您的编码标准中定义缩进样式。但是文档中没有提到它。

或者,您可以按照此处所述编写自己的规则:http: //pear.php.net/manual/en/package.php.php-codesniffer.coding-standard-tutorial.php

于 2012-04-14T15:19:18.143 回答
1

我发现的PHP_CodeSniffer\CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ScopeIndentSniff.phppublic $indent = 4;

您可能只想更改此值。

于 2012-04-14T15:19:03.697 回答
0

PHP CodeSniffer 有规则,据我所知,您应该能够创建一个定义缩进的规则。4 只是一些值,比如 2。所以应该可以。可能不是作为一种选择,而是在您定义标准时。

于 2012-04-14T15:13:07.133 回答