$input->
bind($command->
getDefinition());
} catch (ExceptionInterface
) { // ignore invalid options/arguments for now, to allow the event listeners to customize the InputDefinition
} $event =
new ConsoleCommandEvent($command,
$input,
$output);
$e = null;
try { $this->dispatcher->
dispatch($event, ConsoleEvents::COMMAND
);
if ($event->
commandShouldRun()) { $exitCode =
$command->
run($input,
$output);
} else { $exitCode = ConsoleCommandEvent::RETURN_CODE_DISABLED;
} } catch (\Throwable
$e) { $event =
new ConsoleErrorEvent($input,
$output,
$e,
$command);
$this->dispatcher->
dispatch($event, ConsoleEvents::ERROR
);
$e =
$event->
getError();
if (0 ===
$exitCode =
$event->
getExitCode()) { $e = null;
}