����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 216.73.216.178 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/www/vendor/intervention/image/src/Intervention/Image/Commands/ |
Upload File : |
<?php namespace Intervention\Image\Commands; use Intervention\Image\Exception\InvalidArgumentException; class Argument { /** * Command with arguments * * @var AbstractCommand */ public $command; /** * Key of argument in array * * @var int */ public $key; /** * Creates new instance from given command and key * * @param AbstractCommand $command * @param int $key */ public function __construct(AbstractCommand $command, $key = 0) { $this->command = $command; $this->key = $key; } /** * Returns name of current arguments command * * @return string */ public function getCommandName() { preg_match("/\\\\([\w]+)Command$/", get_class($this->command), $matches); return isset($matches[1]) ? lcfirst($matches[1]).'()' : 'Method'; } /** * Returns value of current argument * * @param mixed $default * @return mixed */ public function value($default = null) { $arguments = $this->command->arguments; if (is_array($arguments)) { return isset($arguments[$this->key]) ? $arguments[$this->key] : $default; } return $default; } /** * Defines current argument as required * * @return \Intervention\Image\Commands\Argument */ public function required() { if ( ! array_key_exists($this->key, $this->command->arguments)) { throw new InvalidArgumentException( sprintf("Missing argument %d for %s", $this->key + 1, $this->getCommandName()) ); } return $this; } /** * Determines that current argument must be of given type * * @return \Intervention\Image\Commands\Argument */ public function type($type) { $valid = true; $value = $this->value(); if ($value === null) { return $this; } switch (strtolower($type)) { case 'bool': case 'boolean': $valid = \is_bool($value); $message = '%s accepts only boolean values as argument %d.'; break; case 'int': case 'integer': $valid = \is_int($value); $message = '%s accepts only integer values as argument %d.'; break; case 'num': case 'numeric': $valid = is_numeric($value); $message = '%s accepts only numeric values as argument %d.'; break; case 'str': case 'string': $valid = \is_string($value); $message = '%s accepts only string values as argument %d.'; break; case 'array': $valid = \is_array($value); $message = '%s accepts only array as argument %d.'; break; case 'closure': $valid = is_a($value, '\Closure'); $message = '%s accepts only Closure as argument %d.'; break; case 'digit': $valid = $this->isDigit($value); $message = '%s accepts only integer values as argument %d.'; break; } if (! $valid) { $commandName = $this->getCommandName(); $argument = $this->key + 1; if (isset($message)) { $message = sprintf($message, $commandName, $argument); } else { $message = sprintf('Missing argument for %d.', $argument); } throw new InvalidArgumentException( $message ); } return $this; } /** * Determines that current argument value must be numeric between given values * * @return \Intervention\Image\Commands\Argument */ public function between($x, $y) { $value = $this->type('numeric')->value(); if (is_null($value)) { return $this; } $alpha = min($x, $y); $omega = max($x, $y); if ($value < $alpha || $value > $omega) { throw new InvalidArgumentException( sprintf('Argument %d must be between %s and %s.', $this->key, $x, $y) ); } return $this; } /** * Determines that current argument must be over a minimum value * * @return \Intervention\Image\Commands\Argument */ public function min($value) { $v = $this->type('numeric')->value(); if (is_null($v)) { return $this; } if ($v < $value) { throw new InvalidArgumentException( sprintf('Argument %d must be at least %s.', $this->key, $value) ); } return $this; } /** * Determines that current argument must be under a maxiumum value * * @return \Intervention\Image\Commands\Argument */ public function max($value) { $v = $this->type('numeric')->value(); if (is_null($v)) { return $this; } if ($v > $value) { throw new InvalidArgumentException( sprintf('Argument %d may not be greater than %s.', $this->key, $value) ); } return $this; } /** * Checks if value is "PHP" integer (120 but also 120.0) * * @param mixed $value * @return boolean */ private function isDigit($value) { return is_numeric($value) ? intval($value) == $value : false; } }