Example #1
0
 /**
  * Add an Option object.
  *
  * @param Option $option An Option object
  */
 public function addOption(Option $option)
 {
     if (isset($this->options[$option->getName()])) {
         throw new \LogicException(sprintf('An option named "%s" already exist.', $option->getName()));
     } else {
         if (isset($this->shortcuts[$option->getShortcut()])) {
             throw new \LogicException(sprintf('An option with shortcut "%s" already exist.', $option->getShortcut()));
         }
     }
     $this->options[$option->getName()] = $option;
     if ($option->getShortcut()) {
         $this->shortcuts[$option->getShortcut()] = $option->getName();
     }
 }
Example #2
0
 /**
  * 添加一个选项
  * @param Option $option 选项
  * @throws \LogicException
  * @api
  */
 public function addOption(Option $option)
 {
     if (isset($this->options[$option->getName()]) && !$option->equals($this->options[$option->getName()])) {
         throw new \LogicException(sprintf('An option named "%s" already exists.', $option->getName()));
     }
     if ($option->getShortcut()) {
         foreach (explode('|', $option->getShortcut()) as $shortcut) {
             if (isset($this->shortcuts[$shortcut]) && !$option->equals($this->options[$this->shortcuts[$shortcut]])) {
                 throw new \LogicException(sprintf('An option with shortcut "%s" already exists.', $shortcut));
             }
         }
     }
     $this->options[$option->getName()] = $option;
     if ($option->getShortcut()) {
         foreach (explode('|', $option->getShortcut()) as $shortcut) {
             $this->shortcuts[$shortcut] = $option->getName();
         }
     }
 }
Example #3
0
 /**
  * 检查所给选项是否是当前这个
  * @param Option $option
  * @return bool
  */
 public function equals(Option $option)
 {
     return $option->getName() === $this->getName() && $option->getShortcut() === $this->getShortcut() && $option->getDefault() === $this->getDefault() && $option->isArray() === $this->isArray() && $option->isValueRequired() === $this->isValueRequired() && $option->isValueOptional() === $this->isValueOptional();
 }