PHP,缩进宽度为4,CodeSniffer:“4”是事实上的标准吗?

时间:2012-04-14 15:09:20

标签: php indentation

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

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

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

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

Java / JavaDoc生成是否相同?

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

4 个答案:

答案 0 :(得分:8)

使用ruleset.xml文件可以覆盖嗅探中的任何公共成员var。 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_CodeSniffer,而是使用phpcs --standard=/path/to/mystandard.xml ...

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

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

答案 1 :(得分:2)

我在PHP_CodeSniffer\CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ScopeIndentSniff.php中找到的是public $indent = 4;

您可能只想更改此值。

答案 2 :(得分:2)

不,这不是事实上的标准。压痕没有标准。

您可以使用--sniffs选择规则 - 请参阅manual。您不需要进行缩进测试。

如果PHP CodeSniffer有任何好处,可以在编码标准中定义缩进样式。但是在文档中没有提到它。

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

答案 3 :(得分:0)

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