class ParameterBag in Zircon Profile 8
Same name in this branch
- 8 vendor/symfony/http-foundation/ParameterBag.php \Symfony\Component\HttpFoundation\ParameterBag
- 8 vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php \Symfony\Component\DependencyInjection\ParameterBag\ParameterBag
Same name and namespace in other branches
- 8.0 vendor/symfony/http-foundation/ParameterBag.php \Symfony\Component\HttpFoundation\ParameterBag
ParameterBag is a container for key/value pairs.
@author Fabien Potencier <fabien@symfony.com>
Hierarchy
- class \Symfony\Component\HttpFoundation\ParameterBag implements \Symfony\Component\HttpFoundation\IteratorAggregate, \Symfony\Component\HttpFoundation\Countable
Expanded class hierarchy of ParameterBag
19 files declare their use of ParameterBag
- CurrentRouteMatchTest.php in core/
tests/ Drupal/ Tests/ Core/ Routing/ CurrentRouteMatchTest.php - Contains \Drupal\Tests\Core\Routing\CurrentRouteMatchTest.
- EntityAccessCheckTest.php in core/
tests/ Drupal/ Tests/ Core/ Entity/ EntityAccessCheckTest.php - Contains \Drupal\Tests\Core\Entity\EntityAccessCheckTest.
- LocalTaskManagerTest.php in core/
tests/ Drupal/ Tests/ Core/ Menu/ LocalTaskManagerTest.php - Contains \Drupal\Tests\Core\Menu\LocalTaskManagerTest.
- MenuActiveTrailTest.php in core/
tests/ Drupal/ Tests/ Core/ Menu/ MenuActiveTrailTest.php - Contains \Drupal\Tests\Core\Menu\MenuActiveTrailTest.
- NegotiationMiddlewareTest.php in core/
tests/ Drupal/ Tests/ Core/ StackMiddleware/ NegotiationMiddlewareTest.php - Contains \Drupal\Tests\Core\StackMiddleware\NegotiationMiddlewareTest.
File
- vendor/
symfony/ http-foundation/ ParameterBag.php, line 19
Namespace
Symfony\Component\HttpFoundationView source
class ParameterBag implements \IteratorAggregate, \Countable {
/**
* Parameter storage.
*
* @var array
*/
protected $parameters;
/**
* Constructor.
*
* @param array $parameters An array of parameters
*/
public function __construct(array $parameters = array()) {
$this->parameters = $parameters;
}
/**
* Returns the parameters.
*
* @return array An array of parameters
*/
public function all() {
return $this->parameters;
}
/**
* Returns the parameter keys.
*
* @return array An array of parameter keys
*/
public function keys() {
return array_keys($this->parameters);
}
/**
* Replaces the current parameters by a new set.
*
* @param array $parameters An array of parameters
*/
public function replace(array $parameters = array()) {
$this->parameters = $parameters;
}
/**
* Adds parameters.
*
* @param array $parameters An array of parameters
*/
public function add(array $parameters = array()) {
$this->parameters = array_replace($this->parameters, $parameters);
}
/**
* Returns a parameter by name.
*
* @param string $path The key
* @param mixed $default The default value if the parameter key does not exist
* @param bool $deep If true, a path like foo[bar] will find deeper items
*
* @return mixed
*
* @throws \InvalidArgumentException
*/
public function get($path, $default = null, $deep = false) {
if (!$deep || false === ($pos = strpos($path, '['))) {
return array_key_exists($path, $this->parameters) ? $this->parameters[$path] : $default;
}
$root = substr($path, 0, $pos);
if (!array_key_exists($root, $this->parameters)) {
return $default;
}
$value = $this->parameters[$root];
$currentKey = null;
for ($i = $pos, $c = strlen($path); $i < $c; ++$i) {
$char = $path[$i];
if ('[' === $char) {
if (null !== $currentKey) {
throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "[" at position %d.', $i));
}
$currentKey = '';
}
elseif (']' === $char) {
if (null === $currentKey) {
throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "]" at position %d.', $i));
}
if (!is_array($value) || !array_key_exists($currentKey, $value)) {
return $default;
}
$value = $value[$currentKey];
$currentKey = null;
}
else {
if (null === $currentKey) {
throw new \InvalidArgumentException(sprintf('Malformed path. Unexpected "%s" at position %d.', $char, $i));
}
$currentKey .= $char;
}
}
if (null !== $currentKey) {
throw new \InvalidArgumentException(sprintf('Malformed path. Path must end with "]".'));
}
return $value;
}
/**
* Sets a parameter by name.
*
* @param string $key The key
* @param mixed $value The value
*/
public function set($key, $value) {
$this->parameters[$key] = $value;
}
/**
* Returns true if the parameter is defined.
*
* @param string $key The key
*
* @return bool true if the parameter exists, false otherwise
*/
public function has($key) {
return array_key_exists($key, $this->parameters);
}
/**
* Removes a parameter.
*
* @param string $key The key
*/
public function remove($key) {
unset($this->parameters[$key]);
}
/**
* Returns the alphabetic characters of the parameter value.
*
* @param string $key The parameter key
* @param mixed $default The default value if the parameter key does not exist
* @param bool $deep If true, a path like foo[bar] will find deeper items
*
* @return string The filtered value
*/
public function getAlpha($key, $default = '', $deep = false) {
return preg_replace('/[^[:alpha:]]/', '', $this
->get($key, $default, $deep));
}
/**
* Returns the alphabetic characters and digits of the parameter value.
*
* @param string $key The parameter key
* @param mixed $default The default value if the parameter key does not exist
* @param bool $deep If true, a path like foo[bar] will find deeper items
*
* @return string The filtered value
*/
public function getAlnum($key, $default = '', $deep = false) {
return preg_replace('/[^[:alnum:]]/', '', $this
->get($key, $default, $deep));
}
/**
* Returns the digits of the parameter value.
*
* @param string $key The parameter key
* @param mixed $default The default value if the parameter key does not exist
* @param bool $deep If true, a path like foo[bar] will find deeper items
*
* @return string The filtered value
*/
public function getDigits($key, $default = '', $deep = false) {
// we need to remove - and + because they're allowed in the filter
return str_replace(array(
'-',
'+',
), '', $this
->filter($key, $default, $deep, FILTER_SANITIZE_NUMBER_INT));
}
/**
* Returns the parameter value converted to integer.
*
* @param string $key The parameter key
* @param mixed $default The default value if the parameter key does not exist
* @param bool $deep If true, a path like foo[bar] will find deeper items
*
* @return int The filtered value
*/
public function getInt($key, $default = 0, $deep = false) {
return (int) $this
->get($key, $default, $deep);
}
/**
* Returns the parameter value converted to boolean.
*
* @param string $key The parameter key
* @param mixed $default The default value if the parameter key does not exist
* @param bool $deep If true, a path like foo[bar] will find deeper items
*
* @return bool The filtered value
*/
public function getBoolean($key, $default = false, $deep = false) {
return $this
->filter($key, $default, $deep, FILTER_VALIDATE_BOOLEAN);
}
/**
* Filter key.
*
* @param string $key Key.
* @param mixed $default Default = null.
* @param bool $deep Default = false.
* @param int $filter FILTER_* constant.
* @param mixed $options Filter options.
*
* @see http://php.net/manual/en/function.filter-var.php
*
* @return mixed
*/
public function filter($key, $default = null, $deep = false, $filter = FILTER_DEFAULT, $options = array()) {
$value = $this
->get($key, $default, $deep);
// Always turn $options into an array - this allows filter_var option shortcuts.
if (!is_array($options) && $options) {
$options = array(
'flags' => $options,
);
}
// Add a convenience check for arrays.
if (is_array($value) && !isset($options['flags'])) {
$options['flags'] = FILTER_REQUIRE_ARRAY;
}
return filter_var($value, $filter, $options);
}
/**
* Returns an iterator for parameters.
*
* @return \ArrayIterator An \ArrayIterator instance
*/
public function getIterator() {
return new \ArrayIterator($this->parameters);
}
/**
* Returns the number of parameters.
*
* @return int The number of parameters
*/
public function count() {
return count($this->parameters);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ParameterBag:: |
protected | property | Parameter storage. | |
ParameterBag:: |
public | function | Adds parameters. | 2 |
ParameterBag:: |
public | function | Returns the parameters. | |
ParameterBag:: |
public | function | Returns the number of parameters. | |
ParameterBag:: |
public | function | Filter key. | |
ParameterBag:: |
public | function | Returns a parameter by name. | |
ParameterBag:: |
public | function | Returns the alphabetic characters and digits of the parameter value. | |
ParameterBag:: |
public | function | Returns the alphabetic characters of the parameter value. | |
ParameterBag:: |
public | function | Returns the parameter value converted to boolean. | |
ParameterBag:: |
public | function | Returns the digits of the parameter value. | |
ParameterBag:: |
public | function | Returns the parameter value converted to integer. | |
ParameterBag:: |
public | function | Returns an iterator for parameters. | |
ParameterBag:: |
public | function | Returns true if the parameter is defined. | |
ParameterBag:: |
public | function | Returns the parameter keys. | |
ParameterBag:: |
public | function | Removes a parameter. | |
ParameterBag:: |
public | function | Replaces the current parameters by a new set. | 1 |
ParameterBag:: |
public | function | Sets a parameter by name. | 2 |
ParameterBag:: |
public | function | Constructor. | 2 |