Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Info.php

function Info::generate

Prints the recorded metrics.

Parameters

string $cachedData Any partial report data that was returned from: generateFileReport during the run.

int $totalFiles Total number of files processed during the run.:

int $totalErrors Total number of errors found during the run.:

int $totalWarnings Total number of warnings found during the run.:

int $totalFixable Total number of problems that can be fixed.:

bool $showSources Show sources?:

int $width Maximum allowed line width.:

bool $interactive Are we running in interactive mode?:

bool $toScreen Is the report being printed to screen?:

Return value

void

Overrides Report::generate

File

vendor/squizlabs/php_codesniffer/src/Reports/Info.php, line 64

Class

Info

Namespace

PHP_CodeSniffer\Reports

Code

public function generate($cachedData, $totalFiles, $totalErrors, $totalWarnings, $totalFixable, $showSources = false, $width = 80, $interactive = false, $toScreen = true) {
    $lines = explode(PHP_EOL, $cachedData);
    array_pop($lines);
    if (empty($lines) === true) {
        return;
    }
    $metrics = [];
    foreach ($lines as $line) {
        $parts = explode('>>', $line);
        $metric = $parts[0];
        $value = $parts[1];
        $count = $parts[2];
        if (isset($metrics[$metric]) === false) {
            $metrics[$metric] = [];
        }
        if (isset($metrics[$metric][$value]) === false) {
            $metrics[$metric][$value] = $count;
        }
        else {
            $metrics[$metric][$value] += $count;
        }
    }
    ksort($metrics);
    echo PHP_EOL . "\x1b[1m" . 'PHP CODE SNIFFER INFORMATION REPORT' . "\x1b[0m" . PHP_EOL;
    echo str_repeat('-', 70) . PHP_EOL;
    foreach ($metrics as $metric => $values) {
        if (count($values) === 1) {
            $count = reset($values);
            $value = key($values);
            echo "{$metric}: \x1b[4m{$value}\x1b[0m [{$count}/{$count}, 100%]" . PHP_EOL;
        }
        else {
            $totalCount = 0;
            $valueWidth = 0;
            foreach ($values as $value => $count) {
                $totalCount += $count;
                $valueWidth = max($valueWidth, strlen($value));
            }
            // Length of the total string, plus however many
            // thousands separators there are.
            $countWidth = strlen($totalCount);
            $thousandSeparatorCount = floor($countWidth / 3);
            $countWidth += $thousandSeparatorCount;
            // Account for 'total' line.
            $valueWidth = max(5, $valueWidth);
            echo "{$metric}:" . PHP_EOL;
            ksort($values, SORT_NATURAL);
            arsort($values);
            $percentPrefixWidth = 0;
            $percentWidth = 6;
            foreach ($values as $value => $count) {
                $percent = round($count / $totalCount * 100, 2);
                $percentPrefix = '';
                if ($percent === 0.0) {
                    $percent = 0.01;
                    $percentPrefix = '<';
                    $percentPrefixWidth = 2;
                    $percentWidth = 4;
                }
                printf("\t%-{$valueWidth}s => %{$countWidth}s (%{$percentPrefixWidth}s%{$percentWidth}.2f%%)" . PHP_EOL, $value, number_format($count), $percentPrefix, $percent);
            }
            echo "\t" . str_repeat('-', $valueWidth + $countWidth + 15) . PHP_EOL;
            printf("\t%-{$valueWidth}s => %{$countWidth}s (100.00%%)" . PHP_EOL, 'total', number_format($totalCount));
        }
        
        //end if
        echo PHP_EOL;
    }
    
    //end foreach
    echo str_repeat('-', 70) . PHP_EOL;
    if ($toScreen === true && $interactive === false) {
        Timing::printRunTime();
    }
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal