133 lines
4.2 KiB
PHP
133 lines
4.2 KiB
PHP
<?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.3
|
|
* @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
|
|
|
|
?>
|