public function Command::run in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/symfony/console/Command/Command.php \Symfony\Component\Console\Command\Command::run()
Runs the command.
The code to execute is either defined directly with the setCode() method or by overriding the execute() method in a sub-class.
Parameters
InputInterface $input An InputInterface instance:
OutputInterface $output An OutputInterface instance:
Return value
int The command exit code
Throws
\Exception
See also
setCode()
execute()
File
- vendor/
symfony/ console/ Command/ Command.php, line 210
Class
- Command
- Base class for all commands.
Namespace
Symfony\Component\Console\CommandCode
public function run(InputInterface $input, OutputInterface $output) {
// force the creation of the synopsis before the merge with the app definition
$this
->getSynopsis(true);
$this
->getSynopsis(false);
// add the application arguments and options
$this
->mergeApplicationDefinition();
// bind the input against the command specific arguments/options
try {
$input
->bind($this->definition);
} catch (\Exception $e) {
if (!$this->ignoreValidationErrors) {
throw $e;
}
}
$this
->initialize($input, $output);
if (null !== $this->processTitle) {
if (function_exists('cli_set_process_title')) {
cli_set_process_title($this->processTitle);
}
elseif (function_exists('setproctitle')) {
setproctitle($this->processTitle);
}
elseif (OutputInterface::VERBOSITY_VERY_VERBOSE === $output
->getVerbosity()) {
$output
->writeln('<comment>Install the proctitle PECL to be able to change the process title.</comment>');
}
}
if ($input
->isInteractive()) {
$this
->interact($input, $output);
}
// The command name argument is often omitted when a command is executed directly with its run() method.
// It would fail the validation if we didn't make sure the command argument is present,
// since it's required by the application.
if ($input
->hasArgument('command') && null === $input
->getArgument('command')) {
$input
->setArgument('command', $this
->getName());
}
$input
->validate();
if ($this->code) {
$statusCode = call_user_func($this->code, $input, $output);
}
else {
$statusCode = $this
->execute($input, $output);
}
return is_numeric($statusCode) ? (int) $statusCode : 0;
}