code: public function execute(InputInterface $input, OutputInterface $output)
      {
          $source = $input->getArgument('source');
  
          if (is_dir($source) === false && is_file($source) === false) {
              throw new \InvalidArgumentException(sprintf('"%s" is not a file or a directory', $source));
          }
  
          $logger = new Logger($this->output, $input->getOption('debug'));
  
          if (is_dir($source) === true) {
              $collector = new DirectoryCodeCollector(array($source));
          } elseif (is_file($source) === true) {
              $collector = new FileCodeCollector(array($source));
          }
  
          foreach ($this->engine->convert($collector, $logger, $input->getArgument('file')) as $file) {
              $this->fileRender->render($file);
          }
  
          if (!empty($logger->getIncompatibility())) {
              $table = new Table($this->output);
  
              $table->setHeaders(array(
                  array(new TableCell('Incompatibility', array('colspan' => 4))),
                  array('Type', 'Message', 'Line', 'Class')
              ));
              $table->setRows($logger->getIncompatibility());
              $table->render();
          } else {
              $logger->log('No incompatibily found !');
          }
  
          if ($input->getOption('v') === true) {
              $table = new Table($this->output);
  
              $table->setHeaders(array(
                  array(new TableCell('Log', array('colspan' => 3))),
                  array('Message', 'Line', 'Class')
              ));
              $table->setRows($logger->getLogs());
              $table->render();
          }
      }
docs: /* (non-PHPdoc)
  @see \Symfony\Component\Console\Command\Command::execute()