src/PhpToZephir/Command/Convert.php
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();
        }
    }
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();
        }
    }
/* (non-PHPdoc)
@see \Symfony\Component\Console\Command\Command::execute()