如何忽略行长PHP_代码嗅探器

如何忽略行长PHP_代码嗅探器,php,jenkins,continuous-integration,pear,codesniffer,Php,Jenkins,Continuous Integration,Pear,Codesniffer,我一直在jenkins使用PHP_CodeSniffer,我的build.xml是为PHPC配置的,如下所示 <target name="phpcs"> <exec executable="phpcs"> <arg line="--report=checkstyle --report-file=${basedir}/build/logs/checkstyle.xml --standard=Zend ${source}"/> &l

我一直在jenkins使用PHP_CodeSniffer,我的build.xml是为PHPC配置的,如下所示

<target name="phpcs">
    <exec executable="phpcs">
        <arg line="--report=checkstyle --report-file=${basedir}/build/logs/checkstyle.xml --standard=Zend ${source}"/>
    </exec>
</target> 

我怎么能忽略测线长度警告?

您可以创建自己的标准。Zend one非常简单(在使用PEAR安装Debian后,在我的Debian安装中位于
/usr/share/php/php/CodeSniffer/Standards/Zend/ruleset.xml
)。在此基础上创建另一个,但忽略行长度位:

<?xml version="1.0"?>
<ruleset name="Custom">
 <description>Zend, but without linelength check.</description>
 <rule ref="Zend">
  <exclude name="Generic.Files.LineLength"/>
 </rule>
</ruleset>
  • 查找文件CodeSniffer/Standards/PEAR/ruleset.xml–在mac/linux上,您可以在终端中搜索:

    locate PEAR/ruleset.xml
    sudo find/-name“ruleset.xml”

  • 然后,您需要在ruleset.xml中找到以下行:

    
    

  • 只需将数字85(线的最大长度)更改为您想要的


  • 请注意,phpc的默认编码标准是PEAR标准。因此,您需要在以下位置编辑ruleset.xml:CodeSniffer/Standards/PEAR/ruleset.xml

    忽略消息行超过x个字符的另一种方法是使用
    --exclude
    标志排除规则

    vendor/bin/phpcs --standard=PSR2  --exclude=Generic.Files.LineLength app/
    
    要查找要排除的规则名称,请在以下目录中查找相应的规则集:

    vendor/squizlabs/php\u codesniffer/src/Standards//ruleset.xml

    规则名称将位于ref节点中:

     <rule ref="Generic.Files.LineLength">
            <properties>
                <property name="lineLimit" value="120"/>
                <property name="absoluteLineLimit" value="0"/>
            </properties>
     </rule>
    
    
    

    它比创建单独的规则集更快,也不那么麻烦。

    如果您不想每次都用参数键入整个命令
    --standard=PSR2--exclude=Generic.Files.LineLength app/
    ,您可以在主目录中创建文件
    phpcs.xml
    ,并覆盖规则设置

    <?xml version="1.0"?>
    <ruleset name="PHP_CodeSniffer">
        <rule ref="PSR2"> <!-- ruleset standard -->
            <properties>
                <property name="lineLimit" value="150"/> <!-- maximum line length -->
            </properties>
        </rule>
        <file>app</file> <!-- directory you want to analyze -->
        <arg name="encoding" value="utf-8"/>
    </ruleset>
    

    谢谢,这就是我要找的!你好,Wrikken,你知道我在哪里可以找到编辑规则的文件吗?Thanks@DanJ.:如上所述,不要编辑现有规则,扩展您喜欢的规则集并重写一些规则。如果您真的想访问该文件:视情况而定,它们通常在
    /usr/share/php/
    中的某个地方徘徊,如答案所示。或者您可以:
    src/Migrations
    示例:Hi dextervip。您是否使用Jenkins插件发布phpcs结果?我想知道这是如何在詹金斯建立的。干杯ns@nonshatter我一直在使用puglin发布我的结果。它工作得很好,只需在项目中安装并启用它,链接到xml文件。谢谢@dextervip,我会检查一下。我昨天刚用“checkstyle”插件做了一个设置。它提供了一些很好的报告和一些趋势图等。更多信息请关注:
     <rule ref="Generic.Files.LineLength">
            <properties>
                <property name="lineLimit" value="120"/>
                <property name="absoluteLineLimit" value="0"/>
            </properties>
     </rule>
    
    <?xml version="1.0"?>
    <ruleset name="PHP_CodeSniffer">
        <rule ref="PSR2"> <!-- ruleset standard -->
            <properties>
                <property name="lineLimit" value="150"/> <!-- maximum line length -->
            </properties>
        </rule>
        <file>app</file> <!-- directory you want to analyze -->
        <arg name="encoding" value="utf-8"/>
    </ruleset>
    
    vendor/bin/phpcs