/** * Print progress information for a single processed file. * * @param File $file The file that was processed. * @param int $numFiles The total number of files to process. * @param int $numProcessed The number of files that have been processed, * including this one. * * @return void */ function printProgress($file, $numFiles, $numProcessed) { if (PHP_CODESNIFFER_VERBOSITY > 0 || $this->config->showProgress === false) { return; } // Show progress information. if ($file->ignored === true) { echo 'S'; } else { $errors = $file->getErrorCount(); $warnings = $file->getWarningCount(); $fixable = $file->getFixableCount(); $fixed = $file->getFixedCount(); if (PHP_CODESNIFFER_CBF === true) { // Files with fixed errors or warnings are F (green). // Files with unfixable errors or warnings are E (red). // Files with no errors or warnings are . (black). if ($fixable > 0) { if ($this->config->colors === true) { echo "[31m"; } echo 'E'; if ($this->config->colors === true) { echo "[0m"; } } else { if ($fixed > 0) { if ($this->config->colors === true) { echo "[32m"; } echo 'F'; if ($this->config->colors === true) { echo "[0m"; } } else { echo '.'; } } //end if } else { // Files with errors are E (red). // Files with fixable errors are E (green). // Files with warnings are W (yellow). // Files with fixable warnings are W (green). // Files with no errors or warnings are . (black). if ($errors > 0) { if ($this->config->colors === true) { if ($fixable > 0) { echo "[32m"; } else { echo "[31m"; } } echo 'E'; if ($this->config->colors === true) { echo "[0m"; } } else { if ($warnings > 0) { if ($this->config->colors === true) { if ($fixable > 0) { echo "[32m"; } else { echo "[33m"; } } echo 'W'; if ($this->config->colors === true) { echo "[0m"; } } else { echo '.'; } } //end if } //end if } //end if if ($numProcessed % 60 === 0) { $padding = strlen($numFiles) - strlen($numProcessed); echo str_repeat(' ', $padding); $percent = round($numProcessed / $numFiles * 100); echo " {$numProcessed} / {$numFiles} ({$percent}%)" . PHP_EOL; } }