Webmozart\Console\Api\Args\Format\ArgsFormatBuilder::addCommandOption PHP Method

addCommandOption() public method

The existing command options stored in the builder are preserved.
See also: addCommandOptions()
public addCommandOption ( CommandOption $commandOption ) : static
$commandOption CommandOption The command option to add.
return static The current instance.
    public function addCommandOption(CommandOption $commandOption)
    {
        $longName = $commandOption->getLongName();
        $shortName = $commandOption->getShortName();
        $longAliases = $commandOption->getLongAliases();
        $shortAliases = $commandOption->getShortAliases();
        if ($this->hasOption($longName) || $this->hasCommandOption($longName)) {
            throw CannotAddOptionException::existsAlready($longName);
        }
        foreach ($longAliases as $shortAlias) {
            if ($this->hasOption($shortAlias) || $this->hasCommandOption($shortAlias)) {
                throw CannotAddOptionException::existsAlready($shortAlias);
            }
        }
        if ($shortName && ($this->hasOption($shortName) || $this->hasCommandOption($shortName))) {
            throw CannotAddOptionException::existsAlready($shortName);
        }
        foreach ($shortAliases as $shortAlias) {
            if ($this->hasOption($shortAlias) || $this->hasCommandOption($shortAlias)) {
                throw CannotAddOptionException::existsAlready($shortAlias);
            }
        }
        $this->commandOptions[$longName] = $commandOption;
        if ($shortName) {
            $this->commandOptionsByShortName[$shortName] = $commandOption;
        }
        foreach ($longAliases as $longAlias) {
            $this->commandOptions[$longAlias] = $commandOption;
        }
        foreach ($shortAliases as $shortAlias) {
            $this->commandOptionsByShortName[$shortAlias] = $commandOption;
        }
        return $this;
    }

Usage Example

 /**
  * @expectedException \Webmozart\Console\Api\Args\CannotAddOptionException
  */
 public function testFailIfAddingOptionWithSameShortNameAsCommandOptionAlias()
 {
     $this->builder->addCommandOption(new CommandOption('option1', 'o', array('a')));
     $this->builder->addOption(new Option('option2', 'a'));
 }
All Usage Examples Of Webmozart\Console\Api\Args\Format\ArgsFormatBuilder::addCommandOption