/** * 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; }
/** * 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; }