getCommandOptions() public method

Returns all command options of the format.
public getCommandOptions ( boolean $includeBase = true ) : CommandOption[]
$includeBase boolean Whether to include options of the base format in the result.
return CommandOption[] The command options.
Example #1
0
 /**
  * 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));
     }
 }
Example #3
0
 /**
  * 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));
 }
Example #4
0
 /**
  * Returns the command options as array.
  *
  * @return CommandOption[] The command options.
  */
 public function getCommandOptions()
 {
     return $this->format->getCommandOptions();
 }
Example #5
0
 /**
  * @expectedException \InvalidArgumentException
  */
 public function testGetCommandOptionsFailsIfIncludeBaseNoBoolean()
 {
     $format = new ArgsFormat();
     $format->getCommandOptions(1234);
 }