/**
  * Is the next thing an argument?
  *
  * @return false|SysCmdArgument
  */
 protected function argument()
 {
     $name = "";
     $value = "";
     if ($this->eq("-")) {
         if (!(list($name) = $this->is("text"))) {
             throw new TextParserException("Invalid flag", $this);
         }
         list($value) = $this->is("text");
     } elseif (!(list($value) = $this->is("text"))) {
         return false;
     }
     $arg = new SysCmdArgument();
     $arg->setName($name);
     $arg->setValue($value);
     return $arg;
 }
Пример #2
0
 /**
  * Appends a single argument.
  *
  * For example:
  * ```php
  * // list detailed files under my_dir
  * $cmd = new SysCmd("ls");
  * $cmd->appendFlag("al");
  * $cmd->appendArg("my_dir");
  * echo $cmd->toString(); // prints "ls -al my_dir"
  * ```
  *
  * @param string|SysCmdArgument $value A value
  * @param string                $name  Argument name (default is "")
  *
  * @return SysCmdArgument
  */
 public function appendArg($value, $name = "")
 {
     $arg = null;
     if (!$value instanceof SysCmdArgument) {
         $arg = new SysCmdArgument();
         $arg->setValue($value);
         $arg->setName($name);
     } else {
         $arg = $value;
     }
     array_push($this->args, $arg);
     return $arg;
 }