1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
<?php
/**
* Summary report for PHP_CodeSniffer.
*
* PHP version 5
*
* @category PHP
* @package PHP_CodeSniffer
* @author Gabriele Santini <gsantini@sqli.com>
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2009 SQLI <www.sqli.com>
* @copyright 2006-2011 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
/**
* Summary report for PHP_CodeSniffer.
*
* PHP version 5
*
* @category PHP
* @package PHP_CodeSniffer
* @author Gabriele Santini <gsantini@sqli.com>
* @author Greg Sherwood <gsherwood@squiz.net>
* @copyright 2009 SQLI <www.sqli.com>
* @copyright 2006-2011 Squiz Pty Ltd (ABN 77 084 670 600)
* @license http://matrix.squiz.net/developer/tools/php_cs/licence BSD Licence
* @version Release: 1.3.4
* @link http://pear.php.net/package/PHP_CodeSniffer
*/
class PHP_CodeSniffer_Reports_Summary implements PHP_CodeSniffer_Report
{
/**
* Generates a summary of errors and warnings for each file processed.
*
* If verbose output is enabled, results are shown for all files, even if
* they have no errors or warnings. If verbose output is disabled, we only
* show files that have at least one warning or error.
*
* @param array $report Prepared report.
* @param boolean $showSources Show sources?
* @param int $width Maximum allowed lne width.
* @param boolean $toScreen Is the report being printed to screen?
*
* @return string
*/
public function generate(
$report,
$showSources=false,
$width=80,
$toScreen=true
) {
$errorFiles = array();
$width = max($width, 70);
foreach ($report['files'] as $filename => $file) {
$numWarnings = $file['warnings'];
$numErrors = $file['errors'];
// If verbose output is enabled, we show the results for all files,
// but if not, we only show files that had errors or warnings.
if (PHP_CODESNIFFER_VERBOSITY > 0
|| $numErrors > 0
|| $numWarnings > 0
) {
$errorFiles[$filename] = array(
'warnings' => $numWarnings,
'errors' => $numErrors,
);
}//end if
}//end foreach
if (empty($errorFiles) === true) {
// Nothing to print.
return 0;
}
echo PHP_EOL.'PHP CODE SNIFFER REPORT SUMMARY'.PHP_EOL;
echo str_repeat('-', $width).PHP_EOL;
echo 'FILE'.str_repeat(' ', ($width - 20)).'ERRORS WARNINGS'.PHP_EOL;
echo str_repeat('-', $width).PHP_EOL;
$totalErrors = 0;
$totalWarnings = 0;
$totalFiles = 0;
foreach ($errorFiles as $file => $errors) {
$padding = ($width - 18 - strlen($file));
if ($padding < 0) {
$file = '...'.substr($file, (($padding * -1) + 3));
$padding = 0;
}
echo $file.str_repeat(' ', $padding).' ';
echo $errors['errors'];
echo str_repeat(' ', (8 - strlen((string) $errors['errors'])));
echo $errors['warnings'];
echo PHP_EOL;
$totalFiles++;
}//end foreach
echo str_repeat('-', $width).PHP_EOL;
echo 'A TOTAL OF '.$report['totals']['errors'].' ERROR(S) ';
echo 'AND '.$report['totals']['warnings'].' WARNING(S) ';
echo 'WERE FOUND IN '.$totalFiles.' FILE(S)'.PHP_EOL;
echo str_repeat('-', $width).PHP_EOL.PHP_EOL;
if ($showSources === true) {
$source = new PHP_CodeSniffer_Reports_Source();
$source->generate($report, $showSources, $width);
}
if ($toScreen === true
&& PHP_CODESNIFFER_INTERACTIVE === false
&& class_exists('PHP_Timer', false) === true
) {
echo PHP_Timer::resourceUsage().PHP_EOL.PHP_EOL;
}
return ($report['totals']['errors'] + $report['totals']['warnings']);
}//end generate()
}//end class
?>
|