mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-26 22:50:29 +01:00
134 lines
3.0 KiB
PHP
134 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Xentral\Components\Http\Collection;
|
|
|
|
class ReadonlyParameterCollection
|
|
{
|
|
/** @var array $params */
|
|
protected $params;
|
|
|
|
/**
|
|
* @param array $params
|
|
*/
|
|
public function __construct(array $params = [])
|
|
{
|
|
$this->params = [];
|
|
foreach ($params as $name => $value) {
|
|
$this->params[$name] = $value;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Returns all parameters and values as associative array
|
|
*
|
|
* @return array
|
|
*/
|
|
public function all()
|
|
{
|
|
return $this->params;
|
|
}
|
|
|
|
/**
|
|
* Returns true if parameter is available
|
|
*
|
|
* @param string $name
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function has($name)
|
|
{
|
|
return array_key_exists($name, $this->params);
|
|
}
|
|
|
|
/**
|
|
* Returns the parameter value
|
|
*
|
|
* @param string $name
|
|
* @param mixed|null $default
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function get($name, $default = null)
|
|
{
|
|
return isset($this->params[$name]) ? $this->params[$name] : $default;
|
|
}
|
|
|
|
/**
|
|
* Returns the parameter value casted to boolean
|
|
*
|
|
* @param string $name
|
|
* @param bool $default
|
|
*
|
|
* @return bool Returns true for "1", "true", "on" and "yes"; otherwise false
|
|
*/
|
|
public function getBool($name, $default = false)
|
|
{
|
|
return filter_var($this->get($name, $default), FILTER_VALIDATE_BOOLEAN);
|
|
}
|
|
|
|
/**
|
|
* Returns the parameter value casted to integer
|
|
*
|
|
* @param string $name
|
|
* @param int $default
|
|
*
|
|
* @return int
|
|
*/
|
|
public function getInt($name, $default = 0)
|
|
{
|
|
return (int)$this->get($name, $default);
|
|
}
|
|
|
|
/**
|
|
* Returns a string with digits only (0-9)
|
|
*
|
|
* @param string $name
|
|
* @param string $default
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getDigits($name, $default = '')
|
|
{
|
|
return (string)preg_replace('#[^0-9]#', '', $this->get($name, $default));
|
|
}
|
|
|
|
/**
|
|
* Returns a string with alphabetic characters only (A-Z and a-z)
|
|
*
|
|
* @param string $name
|
|
* @param string $default
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getAlpha($name, $default = '')
|
|
{
|
|
return (string)preg_replace('#[^A-Za-z]#', '', $this->get($name, $default));
|
|
}
|
|
|
|
/**
|
|
* Returns a string with alphanumeric characters only (A-Z, a-z and 0-9)
|
|
*
|
|
* @param string $name
|
|
* @param string $default
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getAlphaNum($name, $default = '')
|
|
{
|
|
return (string)preg_replace('#[^A-Za-z0-9]#', '', $this->get($name, $default));
|
|
}
|
|
|
|
/**
|
|
* Returns a string with alphanumeric characters and dashes only (A-Z, a-z, 0-9, Minus and Underscore)
|
|
*
|
|
* @param string $name
|
|
* @param string $default
|
|
*
|
|
* @return string
|
|
*/
|
|
public function getAlphaNumWithDashes($name, $default = '')
|
|
{
|
|
return (string)preg_replace('#[^A-Za-z0-9_-]#', '', $this->get($name, $default));
|
|
}
|
|
}
|