public function doRun(InputInterface $input, OutputInterface $output)
{
$container = $this->container;
$container->set('ui.input', $input);
$container->set('ui.output', $output);
$container->get('logger.handler')->setOutput($output);
foreach ($container->getByPrefix('commands') as $command) {
$this->add($command);
}
if ($input->hasParameterOption(array('--tags', '-t'))) {
$tags = $input->getParameterOption(array('--tags', '-t'));
$tags = explode(',', $tags);
$container->setParameter('filter.tags', $tags);
$container->get('logger')->addDebug('Filtered using tags', array('tags' => $tags));
}
if ($input->hasParameterOption(array('--coverage', '-r'))) {
$container->setParameter('coverage.enabled', true);
}
$event = new GenericEvent($container);
$container->get('dispatcher')->dispatch(ApplicationEvents::initialize, $event);
$command = $this->getCommandName($input);
if (trim($command) === '') {
$input = new StringInput('start');
}
return parent::doRun($input, $output);
}