![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/phpmd/phpmd/src/main/php/PHPMD/Renderer/ |
<?php namespace PHPMD\Renderer; use PHPMD\AbstractRenderer; use PHPMD\Report; use PHPMD\RuleViolation; /** * This renderer output a command line friendly log with all found violations * and suspect software artifacts. */ class AnsiRenderer extends AbstractRenderer { /** * @param \PHPMD\Report $report * @return void */ public function renderReport(Report $report) { $this->writeViolationsReport($report); $this->writeErrorsReport($report); $this->writeReportSummary($report); } /** * @param \PHPMD\Report $report * @return void */ private function writeViolationsReport(Report $report) { if ($report->isEmpty()) { return; } $padding = $this->getMaxLineNumberLength($report); $previousFile = null; foreach ($report->getRuleViolations() as $violation) { if ($violation->getFileName() !== $previousFile) { if ($previousFile !== null) { $this->getWriter()->write(PHP_EOL); } $this->writeViolationFileHeader($violation); } $this->writeViolationLine($violation, $padding); $previousFile = $violation->getFileName(); } } /** * @param \PHPMD\Report $report * @return int|null */ private function getMaxLineNumberLength(Report $report) { $maxLength = null; foreach ($report->getRuleViolations() as $violation) { if ($maxLength === null || strlen($violation->getBeginLine()) > $maxLength) { $maxLength = strlen($violation->getBeginLine()); } } return $maxLength; } /** * @param \PHPMD\RuleViolation $violation * @return void */ private function writeViolationFileHeader(RuleViolation $violation) { $fileHeader = sprintf( 'FILE: %s', $violation->getFileName() ); $this->getWriter()->write( PHP_EOL . $fileHeader . PHP_EOL . str_repeat('-', strlen($fileHeader)) . PHP_EOL ); } /** * @param \PHPMD\RuleViolation $violation * @param int $padding * @return void */ private function writeViolationLine(RuleViolation $violation, $padding) { $this->getWriter()->write(sprintf( " %s | \e[31mVIOLATION\e[0m | %s" . PHP_EOL, str_pad($violation->getBeginLine(), $padding, ' '), $violation->getDescription() )); } /** * @param \PHPMD\Report $report * @return void */ private function writeErrorsReport(Report $report) { if (!$report->hasErrors()) { return; } /** @var ProcessingError $error */ foreach ($report->getErrors() as $error) { $errorHeader = sprintf( "\e[33mERROR\e[0m while parsing %s", $error->getFile() ); $this->getWriter()->write( PHP_EOL . $errorHeader . PHP_EOL . str_repeat('-', strlen($errorHeader) - 9) . PHP_EOL ); $this->getWriter()->write(sprintf( '%s' . PHP_EOL, $error->getMessage() )); } } /** * @param \PHPMD\Report $report * @return void */ private function writeReportSummary(Report $report) { $this->getWriter()->write( sprintf( PHP_EOL . 'Found %s %s and %s %s in %sms' . PHP_EOL, count($report->getRuleViolations()), count($report->getRuleViolations()) !== 1 ? 'violations' : 'violation', iterator_count($report->getErrors()), iterator_count($report->getErrors()) !== 1 ? 'errors' : 'error', $report->getElapsedTimeInMillis() ) ); if (count($report->getRuleViolations()) === 0 && iterator_count($report->getErrors()) === 0) { $this->getWriter()->write(PHP_EOL . "\e[32mNo mess detected\e[0m" . PHP_EOL); } } }