芝麻web文件管理V1.00
编辑当前文件:/home/pulsehostuk9/www/portal.pulsehost.co.uk/vendor/league/climate/src/Argument/Argument.php
setName($name); } /** * Build a new command argument from an array. * * @param string $name * @param array $params * * @return Argument */ public static function createFromArray($name, array $params) { $argument = new Argument($name); $params = self::getSettableArgumentParams($params); foreach ($params as $key => $value) { $method = 'set' . ucwords($key); $argument->{$method}($value); } return $argument; } /** * Get argument params based on settable properties * * @param array $params * * @return array */ protected static function getSettableArgumentParams(array $params) { $allowed = [ 'prefix', 'longPrefix', 'description', 'required', 'noValue', 'castTo', 'defaultValue', ]; return array_intersect_key($params, array_flip($allowed)); } /** * Retrieve an argument's name. * * Use this name when internally referring to the argument. * * @return string */ public function name() { return $this->name; } /** * Set an argument's name. * * Use this name when internally referring to the argument. * * @param string $name */ protected function setName($name) { $this->name = trim($name); } /** * Retrieve an argument's short form. * * @return string */ public function prefix() { return $this->prefix; } /** * Set an argument's short form. * * @param string $prefix */ protected function setPrefix($prefix) { $this->prefix = trim($prefix); } /** * Retrieve an argument's long form. * * @return string */ public function longPrefix() { return $this->longPrefix; } /** * Set an argument's short form. * * @param string $longPrefix */ protected function setLongPrefix($longPrefix) { $this->longPrefix = trim($longPrefix); } /** * Determine if an argument has a prefix. * * @return bool */ public function hasPrefix() { return $this->prefix() || $this->longPrefix(); } /** * Retrieve an argument's description. * * @return string */ public function description() { return $this->description; } /** * Set an argument's description. * * @param string $description */ protected function setDescription($description) { $this->description = trim($description); } /** * Determine whether or not an argument is required. * * @return bool */ public function isRequired() { return $this->required; } /** * Set whether an argument is required or not. * * @param bool $required */ protected function setRequired($required) { $this->required = (bool) $required; } /** * Determine whether or not an argument only needs to be defined to have a * value. * * @return bool */ public function noValue() { return $this->noValue; } /** * Set whether or not an argument only needs to be defined to have a value. * * @param bool $noValue */ protected function setNoValue($noValue) { $this->setCastTo('bool'); $this->noValue = (bool) $noValue; } /** * Retrieve the data type to cast an argument's value to. * * @return string */ public function castTo() { return $this->castTo; } /** * Set the data type to cast an argument's value to. * * Valid data types are "string", "int", "float", and "bool". * * @param string $castTo * * @return void * @throws UnexpectedValueException if $castTo is not a valid data type. */ protected function setCastTo($castTo) { if (!in_array($castTo, ['string', 'int', 'float', 'bool'])) { throw new UnexpectedValueException( "An argument may only be cast to the data type " . "'string', 'int', 'float', or 'bool'." ); } $this->castTo = $this->noValue() ? 'bool' : $castTo; } /** * Retrieve an argument's default values. * * @return string */ public function defaultValue() { return $this->defaultValue; } /** * Set an argument's default value. * * @param string $defaultValue */ public function setDefaultValue($defaultValue) { if (!is_array($defaultValue)) { $defaultValue = [$defaultValue]; } $this->defaultValue = $defaultValue; } /** * Retrieve an argument's value. * * Argument values are type cast based on the value of $castTo. * * @return string|int|float|bool */ public function value() { if ($this->values) { return end($this->values); } $cast_method = 'castTo' . ucwords($this->castTo); return $this->{$cast_method}(current($this->defaultValue())); } /** * Retrieve an argument's values. * * Argument values are type cast based on the value of $castTo. * * @return string[]|int[]|float[]|bool[] */ public function values() { if ($this->values) { return $this->values; } $cast_method = 'castTo' . ucwords($this->castTo); return array_map([$this, $cast_method], $this->defaultValue()); } /** * @deprecated use values() instead. */ public function valueArray() { return $this->values(); } /** * Set an argument's value based on its command line entry. * * Argument values are type cast based on the value of $castTo. * * @param string|bool $value */ public function setValue($value) { $cast_method = 'castTo' . ucwords($this->castTo); $this->values[] = $this->{$cast_method}($value); } /** * @param string $value * * @return string */ protected function castToString($value) { return (string) $value; } /** * @param string $value * * @return int */ protected function castToInt($value) { return (int) $value; } /** * @param string $value * * @return float */ protected function castToFloat($value) { return (float) $value; } /** * @param string $value * * @return bool */ protected function castToBool($value) { return (bool) $value; } }