Sets an array of argument and option instances.
public setDefinition ( array | Symfony\Component\Console\Input\InputDefinition $definition ) : |
||
$definition | array | Symfony\Component\Console\Input\InputDefinition | An array of argument and option instances or a definition instance |
return | The current instance |
/** * creates a Command based on an Api Method. * * @param string $name * @param \ReflectionMethod $method * @param string $token * * @return Command */ private function generateCommand($name, \ReflectionMethod $method, $token = null) { $methodName = $this->transformer->transform($method->getName()); $command = new Command(strtolower($name . ':' . $methodName)); $docBlock = DocBlockFactory::createInstance()->create($method->getDocComment()); $command->setDefinition($this->buildDefinition($method, $token)); $command->setDescription($docBlock->getSummary()); $command->setCode($this->createCode($name, $method)); return $command; }
/** * Build a Symfony Console commands. * * @param \Yosymfony\Spress\Plugin\CommandPluginInterface $commandPlugin * * @return \Symfony\Component\Console\Command\Command Symfony Console command. */ protected function buildCommand(CommandPluginInterface $commandPlugin) { $definition = $commandPlugin->getCommandDefinition(); $argumentsAndOptions = []; $consoleComand = new Command($definition->getName()); $consoleComand->setDescription($definition->getDescription()); $consoleComand->setHelp($definition->getHelp()); foreach ($definition->getArguments() as list($name, $mode, $description, $defaultValue)) { $argumentsAndOptions[] = new InputArgument($name, $mode, $description, $defaultValue); } foreach ($definition->getOptions() as list($name, $shortcut, $mode, $description, $defaultValue)) { $argumentsAndOptions[] = new InputOption($name, $shortcut, $mode, $description, $defaultValue); } $consoleComand->setDefinition($argumentsAndOptions); $consoleComand->setCode(function (InputInterface $input, OutputInterface $output) use($commandPlugin) { $io = new ConsoleIO($input, $output); $arguments = $input->getArguments(); $options = $input->getOptions(); $commandPlugin->executeCommand($io, $arguments, $options); }); return $consoleComand; }
/** * {@inheritdoc} */ public function setDefinition($definition) { $this->decoratedCommand->setDefinition($definition); return $this; }
public function setDefinition($definition) { return $this->innerCommand->setDefinition($definition); }
/** * @param Command $command * @param InputInterface $input * @param InputDefinition $inputDefinition */ private function setInputDefinition(Command $command, InputInterface $input, InputDefinition $inputDefinition) { $command->setDefinition($inputDefinition); $command->mergeApplicationDefinition(); $input->bind($inputDefinition); }