Returns all command options of the format.
public getCommandOptions ( boolean $includeBase = true ) : |
||
$includeBase | boolean | Whether to include options of the base format in the result. |
return | The command options. |
/** * Returns all command options added to the builder. * * @param bool $includeBase Whether to include command options of the base * format in the result. * * @return CommandOption[] The command options. */ public function getCommandOptions($includeBase = true) { Assert::boolean($includeBase, 'The parameter $includeBase must be a boolean. Got: %s'); $commandOptions = array_values($this->commandOptions); if ($includeBase && $this->baseFormat) { // prepend base command options $commandOptions = array_merge($this->baseFormat->getCommandOptions(), $commandOptions); } return $commandOptions; }
/** * Creates a new adapter. * * @param ArgsFormat $format The adapted format. */ public function __construct(ArgsFormat $format) { parent::__construct(); $i = 1; foreach ($format->getCommandNames() as $commandName) { do { $argName = 'cmd' . $i++; } while ($format->hasArgument($argName)); $this->addArgument($argument = $this->adaptCommandName($commandName, $argName)); $this->commandNames[$argument->getName()] = $commandName; } foreach ($format->getCommandOptions() as $commandOption) { $this->addOption($this->adaptCommandOption($commandOption)); } foreach ($format->getOptions() as $option) { $this->addOption($this->adaptOption($option)); } foreach ($format->getArguments() as $argument) { $this->addArgument($this->adaptArgument($argument)); } }
/** * Renders the synopsis of a console command. * * @param BlockLayout $layout The layout. * @param ArgsFormat $argsFormat The console arguments to render. * @param string $appName The name of the application binary. * @param string $prefix The prefix to insert. * @param bool $lastOptional Set to `true` if the last command of the * console arguments is optional. This * command will be enclosed in brackets in * the output. */ protected function renderSynopsis(BlockLayout $layout, ArgsFormat $argsFormat, $appName, $prefix = '', $lastOptional = false) { $nameParts = array(); $argumentParts = array(); $nameParts[] = '<u>' . ($appName ?: 'console') . '</u>'; foreach ($argsFormat->getCommandNames() as $commandName) { $nameParts[] = '<u>' . $commandName->toString() . '</u>'; } foreach ($argsFormat->getCommandOptions() as $commandOption) { $nameParts[] = $commandOption->isLongNamePreferred() ? '--' . $commandOption->getLongName() : '-' . $commandOption->getShortName(); } if ($lastOptional) { $lastIndex = count($nameParts) - 1; $nameParts[$lastIndex] = '[' . $nameParts[$lastIndex] . ']'; } foreach ($argsFormat->getOptions(false) as $option) { // \xC2\xA0 is a non-breaking space if ($option->isValueRequired()) { $format = "%s <%s>"; } elseif ($option->isValueOptional()) { $format = "%s [<%s>]"; } else { $format = '%s'; } $optionName = $option->isLongNamePreferred() ? '--' . $option->getLongName() : '-' . $option->getShortName(); $argumentParts[] = sprintf('[' . $format . ']', $optionName, $option->getValueName()); } foreach ($argsFormat->getArguments() as $argument) { $argName = $argument->getName(); $argumentParts[] = sprintf($argument->isRequired() ? '<%s>' : '[<%s>]', $argName . ($argument->isMultiValued() ? '1' : '')); if ($argument->isMultiValued()) { $argumentParts[] = sprintf('... [<%sN>]', $argName); } } $argsOpts = implode(' ', $argumentParts); $name = implode(' ', $nameParts); $layout->add(new LabeledParagraph($prefix . $name, $argsOpts, 1, false)); }
/** * Returns the command options as array. * * @return CommandOption[] The command options. */ public function getCommandOptions() { return $this->format->getCommandOptions(); }
/** * @expectedException \InvalidArgumentException */ public function testGetCommandOptionsFailsIfIncludeBaseNoBoolean() { $format = new ArgsFormat(); $format->getCommandOptions(1234); }