[COMPOSER] Added predis/predis and updated packages
This commit is contained in:
103
vendor/enqueue/dsn/QueryBag.php
vendored
Normal file
103
vendor/enqueue/dsn/QueryBag.php
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Enqueue\Dsn;
|
||||
|
||||
class QueryBag
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $query;
|
||||
|
||||
public function __construct(array $query)
|
||||
{
|
||||
$this->query = $query;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
{
|
||||
return $this->query;
|
||||
}
|
||||
|
||||
public function getString(string $name, string $default = null): ?string
|
||||
{
|
||||
return array_key_exists($name, $this->query) ? $this->query[$name] : $default;
|
||||
}
|
||||
|
||||
public function getDecimal(string $name, int $default = null): ?int
|
||||
{
|
||||
$value = $this->getString($name);
|
||||
if (null === $value) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
if (false == preg_match('/^[\+\-]?[0-9]*$/', $value)) {
|
||||
throw InvalidQueryParameterTypeException::create($name, 'decimal');
|
||||
}
|
||||
|
||||
return (int) $value;
|
||||
}
|
||||
|
||||
public function getOctal(string $name, int $default = null): ?int
|
||||
{
|
||||
$value = $this->getString($name);
|
||||
if (null === $value) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
if (false == preg_match('/^0[\+\-]?[0-7]*$/', $value)) {
|
||||
throw InvalidQueryParameterTypeException::create($name, 'octal');
|
||||
}
|
||||
|
||||
return intval($value, 8);
|
||||
}
|
||||
|
||||
public function getFloat(string $name, float $default = null): ?float
|
||||
{
|
||||
$value = $this->getString($name);
|
||||
if (null === $value) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
if (false == is_numeric($value)) {
|
||||
throw InvalidQueryParameterTypeException::create($name, 'float');
|
||||
}
|
||||
|
||||
return (float) $value;
|
||||
}
|
||||
|
||||
public function getBool(string $name, bool $default = null): ?bool
|
||||
{
|
||||
$value = $this->getString($name);
|
||||
if (null === $value) {
|
||||
return $default;
|
||||
}
|
||||
|
||||
if (in_array($value, ['', '0', 'false'], true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (in_array($value, ['1', 'true'], true)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
throw InvalidQueryParameterTypeException::create($name, 'bool');
|
||||
}
|
||||
|
||||
public function getArray(string $name, array $default = []): self
|
||||
{
|
||||
if (false == array_key_exists($name, $this->query)) {
|
||||
return new self($default);
|
||||
}
|
||||
|
||||
$value = $this->query[$name];
|
||||
|
||||
if (is_array($value)) {
|
||||
return new self($value);
|
||||
}
|
||||
|
||||
throw InvalidQueryParameterTypeException::create($name, 'array');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user