我正在尝试扩展PHPCodeSniffer.What,我正在尝试实现的是使用错误代码过滤报告。
为了解释这一点,假设我有一条错误消息,比如“错误代码: 630,函数不兼容”。
当我从命令行运行PHPCS时,我应该能够传递一个参数"error code“,以便根据它来过滤报告。(只显示错误代码的结果,比如630)
例如:
$ phpcs --standard=mystanderd /path/to/code/myfile.php --errorcode=603输出将是
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之前操作它,我不认为这是一个最好的解决方案。
发布于 2011-06-22 21:59:51
我想到了一个使用grep和wc的bash脚本。
发布于 2011-10-04 08:49:24
您也可以使用这样的PHP脚本(假设这称为my_wrapper.php):
<?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;
}
?>当它像这样被调用时:
php my_wrapper.php < cs_out.txt使用这样的cs_out.txt:
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
--------------------------------------------------------------------------------生成如下输出:
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的命令行参数指定,这留给读者作为练习。
https://stackoverflow.com/questions/6435970
复制相似问题