首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展phpcodesniffer根据错误码过滤报告

扩展phpcodesniffer根据错误码过滤报告
EN

Stack Overflow用户
提问于 2011-06-22 14:46:33
回答 2查看 110关注 0票数 0

我正在尝试扩展PHPCodeSniffer.What,我正在尝试实现的是使用错误代码过滤报告。

为了解释这一点,假设我有一条错误消息,比如“错误代码: 630,函数不兼容”。

当我从命令行运行PHPCS时,我应该能够传递一个参数"error code“,以便根据它来过滤报告。(只显示错误代码的结果,比如630)

例如:

代码语言:javascript
复制
 $ phpcs --standard=mystanderd /path/to/code/myfile.php --errorcode=603

输出将是

代码语言:javascript
复制
FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 4 ERROR(S) AFFECTING 4 LINE(S)
--------------------------------------------------------------------------------
  2 | ERROR   | 603 | function is  not compatible      
 20 | ERROR   | 603 | function is  not compatible      
 51 | ERROR   | 603 | function is  not compatible      
 88 | ERROR   | 603 | function is  not compatible      
--------------------------------------------------------------------------------

实现它的最好方法是什么?据我所知,我们只能根据优先级进行过滤,因为它有内置的支持。

我想避免修改PHPCodeSniffer的核心。我想要做的是写一个包装器脚本,它将接受来自CLI的参数,并执行PHPCS捕获o/p并在抛出到console.However之前操作它,我不认为这是一个最好的解决方案。

EN

回答 2

Stack Overflow用户

发布于 2011-06-22 21:59:51

我想到了一个使用grep和wc的bash脚本。

票数 0
EN

Stack Overflow用户

发布于 2011-10-04 08:49:24

您也可以使用这样的PHP脚本(假设这称为my_wrapper.php):

代码语言:javascript
复制
<?php

$legal_codes = array(
    '603' => true
);

$f = fopen('php://stdin', 'r');
while ($line = fgets($f)) {
    if (preg_match("/^\s*(\d+)\s*\|\s*([A-Z]+)\s*\|\s*(\d+)\s*\|\s*(.*)/", $line, $match)) {
        $code = trim($match[3]);
        if (!isset($legal_codes[$code])) {
            continue;
        }
    }
    echo $line;
}

?>

当它像这样被调用时:

代码语言:javascript
复制
php my_wrapper.php < cs_out.txt

使用这样的cs_out.txt:

代码语言:javascript
复制
FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 4 ERROR(S) AFFECTING 4 LINE(S)
--------------------------------------------------------------------------------
  2 | ERROR   | 601 | function is  not compatible
 20 | ERROR   | 602 | function is  not compatible
 51 | ERROR   | 603 | function is  not compatible
 88 | ERROR   | 604 | function is  not compatible
--------------------------------------------------------------------------------

生成如下输出:

代码语言:javascript
复制
FILE: /path/to/code/myfile.php
--------------------------------------------------------------------------------
FOUND 4 ERROR(S) AFFECTING 4 LINE(S)
--------------------------------------------------------------------------------
 51 | ERROR   | 603 | function is  not compatible      
--------------------------------------------------------------------------------

使$legal_codes数组的键可以通过my_wrapper.php的命令行参数指定,这留给读者作为练习。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6435970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档