如何正确更改PHP CodeSniffer中的行字符限制配置?

The*_*age 2 php codesniffer

所以我想改变的值$lineLimit,并$absoluteLineLimit在PHP CodeSniffer检查文件时使用。经过一番谷歌搜索后,我试图制定自己的标准来促进这一点,但是我没有使其有效。在Ubuntu 12.04.4LTS上以及PHP CodeSniffer的系统目录中工作,我将放在我的文件夹中,MyStandard并在子目录中,Sniffs我将成为我的个人嗅探员,以更改称为LineLimit120Sniff.php

代码如下

class LineLimit120Sniff extends Generic_Sniffs_Files_LineLengthSniff
{
    public $lineLimit = 100;
    public $absoluteLineLimit = 120;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时phpcs --standard=MyStandard <file>,将其作为输出

PHP注意:未定义的偏移量:1189行的/usr/share/php/PHP/CodeSniffer.php中的3

PHP致命错误:无法在第8行的/usr/share/php/PHP/CodeSniffer/Standards/MyStandard/Sniffs/LineLimit120Sniff.php中重新声明类LineLimit120Sniff

我不明白,该班级是如何重新宣布的?我究竟做错了什么?或者,是否有更简单的方法来更改$lineLimit设置?

com*_*nse 5

简单的方法是在您喜欢的位置创建一个ruleset.xml并将下面的文本插入其中。

<?xml version="1.0"?>
<ruleset name="MyStandard">
    <description>This standard changes the line length</description>

    <!-- Insert all sniff from PSR2 standard -->
    <rule ref="PSR2"/>

    <rule ref="Generic.Files.LineLength">
        <properties>
            <property name="lineLimit" value="100"/>
            <property name="absoluteLineLimit" value="120"/>
        </properties>
     </rule>
</ruleset>
Run Code Online (Sandbox Code Playgroud)

使用标准

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