SensioLabs\Security\Formatters\TextFormatter::displayResults PHP Method

displayResults() public method

Displays a security report as plain text.
public displayResults ( Symfony\Component\Console\Output\OutputInterface $output, string $lockFilePath, array $vulnerabilities )
$output Symfony\Component\Console\Output\OutputInterface
$lockFilePath string The file path to the checked lock file
$vulnerabilities array An array of vulnerabilities
    public function displayResults(OutputInterface $output, $lockFilePath, array $vulnerabilities)
    {
        $output = new SymfonyStyle(new ArrayInput(array()), $output);
        $output->title('Symfony Security Check Report');
        $output->comment(sprintf('Checked file: <comment>%s</>', realpath($lockFilePath)));
        if ($count = count($vulnerabilities)) {
            $output->error(sprintf('%d packages have known vulnerabilities.', $count));
        } else {
            $output->success('No packages have known vulnerabilities.');
        }
        if (0 !== $count) {
            foreach ($vulnerabilities as $dependency => $issues) {
                $output->section(sprintf('%s (%s)', $dependency, $issues['version']));
                $details = array_map(function ($value) {
                    return sprintf("<info>%s</>: %s\n   %s", $value['cve'] ?: '(no CVE ID)', $value['title'], $value['link']);
                }, $issues['advisories']);
                $output->listing($details);
            }
        }
        $output->note('This checker can only detect vulnerabilities that are referenced in the SensioLabs security advisories database. Execute this command regularly to check the newly discovered vulnerabilities.');
    }

Usage Example

 /**
  * @see Command
  * @see SecurityChecker
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if ($endPoint = $input->getOption('end-point')) {
         $this->checker->getCrawler()->setEndPoint($endPoint);
     }
     if ($timeout = $input->getOption('timeout')) {
         $this->checker->getCrawler()->setTimeout($timeout);
     }
     try {
         $vulnerabilities = $this->checker->check($input->getArgument('lockfile'));
     } catch (ExceptionInterface $e) {
         $output->writeln($this->getHelperSet()->get('formatter')->formatBlock($e->getMessage(), 'error', true));
         return 1;
     }
     switch ($input->getOption('format')) {
         case 'json':
             $formatter = new JsonFormatter();
             break;
         case 'simple':
             $formatter = new SimpleFormatter($this->getHelperSet()->get('formatter'));
             break;
         case 'text':
         default:
             $formatter = new TextFormatter($this->getHelperSet()->get('formatter'));
     }
     $formatter->displayResults($output, $input->getArgument('lockfile'), $vulnerabilities);
     if ($this->checker->getLastVulnerabilityCount() > 0) {
         return 1;
     }
 }
All Usage Examples Of SensioLabs\Security\Formatters\TextFormatter::displayResults