annotate vendor/symfony/http-foundation/ParameterBag.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children 1fec387a4317
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the Symfony package.
Chris@0 5 *
Chris@0 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Symfony\Component\HttpFoundation;
Chris@0 13
Chris@0 14 /**
Chris@0 15 * ParameterBag is a container for key/value pairs.
Chris@0 16 *
Chris@0 17 * @author Fabien Potencier <fabien@symfony.com>
Chris@0 18 */
Chris@0 19 class ParameterBag implements \IteratorAggregate, \Countable
Chris@0 20 {
Chris@0 21 /**
Chris@0 22 * Parameter storage.
Chris@0 23 *
Chris@0 24 * @var array
Chris@0 25 */
Chris@0 26 protected $parameters;
Chris@0 27
Chris@0 28 /**
Chris@0 29 * Constructor.
Chris@0 30 *
Chris@0 31 * @param array $parameters An array of parameters
Chris@0 32 */
Chris@0 33 public function __construct(array $parameters = array())
Chris@0 34 {
Chris@0 35 $this->parameters = $parameters;
Chris@0 36 }
Chris@0 37
Chris@0 38 /**
Chris@0 39 * Returns the parameters.
Chris@0 40 *
Chris@0 41 * @return array An array of parameters
Chris@0 42 */
Chris@0 43 public function all()
Chris@0 44 {
Chris@0 45 return $this->parameters;
Chris@0 46 }
Chris@0 47
Chris@0 48 /**
Chris@0 49 * Returns the parameter keys.
Chris@0 50 *
Chris@0 51 * @return array An array of parameter keys
Chris@0 52 */
Chris@0 53 public function keys()
Chris@0 54 {
Chris@0 55 return array_keys($this->parameters);
Chris@0 56 }
Chris@0 57
Chris@0 58 /**
Chris@0 59 * Replaces the current parameters by a new set.
Chris@0 60 *
Chris@0 61 * @param array $parameters An array of parameters
Chris@0 62 */
Chris@0 63 public function replace(array $parameters = array())
Chris@0 64 {
Chris@0 65 $this->parameters = $parameters;
Chris@0 66 }
Chris@0 67
Chris@0 68 /**
Chris@0 69 * Adds parameters.
Chris@0 70 *
Chris@0 71 * @param array $parameters An array of parameters
Chris@0 72 */
Chris@0 73 public function add(array $parameters = array())
Chris@0 74 {
Chris@0 75 $this->parameters = array_replace($this->parameters, $parameters);
Chris@0 76 }
Chris@0 77
Chris@0 78 /**
Chris@0 79 * Returns a parameter by name.
Chris@0 80 *
Chris@0 81 * @param string $key The key
Chris@0 82 * @param mixed $default The default value if the parameter key does not exist
Chris@0 83 *
Chris@0 84 * @return mixed
Chris@0 85 */
Chris@0 86 public function get($key, $default = null)
Chris@0 87 {
Chris@0 88 return array_key_exists($key, $this->parameters) ? $this->parameters[$key] : $default;
Chris@0 89 }
Chris@0 90
Chris@0 91 /**
Chris@0 92 * Sets a parameter by name.
Chris@0 93 *
Chris@0 94 * @param string $key The key
Chris@0 95 * @param mixed $value The value
Chris@0 96 */
Chris@0 97 public function set($key, $value)
Chris@0 98 {
Chris@0 99 $this->parameters[$key] = $value;
Chris@0 100 }
Chris@0 101
Chris@0 102 /**
Chris@0 103 * Returns true if the parameter is defined.
Chris@0 104 *
Chris@0 105 * @param string $key The key
Chris@0 106 *
Chris@0 107 * @return bool true if the parameter exists, false otherwise
Chris@0 108 */
Chris@0 109 public function has($key)
Chris@0 110 {
Chris@0 111 return array_key_exists($key, $this->parameters);
Chris@0 112 }
Chris@0 113
Chris@0 114 /**
Chris@0 115 * Removes a parameter.
Chris@0 116 *
Chris@0 117 * @param string $key The key
Chris@0 118 */
Chris@0 119 public function remove($key)
Chris@0 120 {
Chris@0 121 unset($this->parameters[$key]);
Chris@0 122 }
Chris@0 123
Chris@0 124 /**
Chris@0 125 * Returns the alphabetic characters of the parameter value.
Chris@0 126 *
Chris@0 127 * @param string $key The parameter key
Chris@0 128 * @param string $default The default value if the parameter key does not exist
Chris@0 129 *
Chris@0 130 * @return string The filtered value
Chris@0 131 */
Chris@0 132 public function getAlpha($key, $default = '')
Chris@0 133 {
Chris@0 134 return preg_replace('/[^[:alpha:]]/', '', $this->get($key, $default));
Chris@0 135 }
Chris@0 136
Chris@0 137 /**
Chris@0 138 * Returns the alphabetic characters and digits of the parameter value.
Chris@0 139 *
Chris@0 140 * @param string $key The parameter key
Chris@0 141 * @param string $default The default value if the parameter key does not exist
Chris@0 142 *
Chris@0 143 * @return string The filtered value
Chris@0 144 */
Chris@0 145 public function getAlnum($key, $default = '')
Chris@0 146 {
Chris@0 147 return preg_replace('/[^[:alnum:]]/', '', $this->get($key, $default));
Chris@0 148 }
Chris@0 149
Chris@0 150 /**
Chris@0 151 * Returns the digits of the parameter value.
Chris@0 152 *
Chris@0 153 * @param string $key The parameter key
Chris@0 154 * @param string $default The default value if the parameter key does not exist
Chris@0 155 *
Chris@0 156 * @return string The filtered value
Chris@0 157 */
Chris@0 158 public function getDigits($key, $default = '')
Chris@0 159 {
Chris@0 160 // we need to remove - and + because they're allowed in the filter
Chris@0 161 return str_replace(array('-', '+'), '', $this->filter($key, $default, FILTER_SANITIZE_NUMBER_INT));
Chris@0 162 }
Chris@0 163
Chris@0 164 /**
Chris@0 165 * Returns the parameter value converted to integer.
Chris@0 166 *
Chris@0 167 * @param string $key The parameter key
Chris@0 168 * @param int $default The default value if the parameter key does not exist
Chris@0 169 *
Chris@0 170 * @return int The filtered value
Chris@0 171 */
Chris@0 172 public function getInt($key, $default = 0)
Chris@0 173 {
Chris@0 174 return (int) $this->get($key, $default);
Chris@0 175 }
Chris@0 176
Chris@0 177 /**
Chris@0 178 * Returns the parameter value converted to boolean.
Chris@0 179 *
Chris@0 180 * @param string $key The parameter key
Chris@0 181 * @param mixed $default The default value if the parameter key does not exist
Chris@0 182 *
Chris@0 183 * @return bool The filtered value
Chris@0 184 */
Chris@0 185 public function getBoolean($key, $default = false)
Chris@0 186 {
Chris@0 187 return $this->filter($key, $default, FILTER_VALIDATE_BOOLEAN);
Chris@0 188 }
Chris@0 189
Chris@0 190 /**
Chris@0 191 * Filter key.
Chris@0 192 *
Chris@0 193 * @param string $key Key
Chris@0 194 * @param mixed $default Default = null
Chris@0 195 * @param int $filter FILTER_* constant
Chris@0 196 * @param mixed $options Filter options
Chris@0 197 *
Chris@0 198 * @see http://php.net/manual/en/function.filter-var.php
Chris@0 199 *
Chris@0 200 * @return mixed
Chris@0 201 */
Chris@0 202 public function filter($key, $default = null, $filter = FILTER_DEFAULT, $options = array())
Chris@0 203 {
Chris@0 204 $value = $this->get($key, $default);
Chris@0 205
Chris@0 206 // Always turn $options into an array - this allows filter_var option shortcuts.
Chris@0 207 if (!is_array($options) && $options) {
Chris@0 208 $options = array('flags' => $options);
Chris@0 209 }
Chris@0 210
Chris@0 211 // Add a convenience check for arrays.
Chris@0 212 if (is_array($value) && !isset($options['flags'])) {
Chris@0 213 $options['flags'] = FILTER_REQUIRE_ARRAY;
Chris@0 214 }
Chris@0 215
Chris@0 216 return filter_var($value, $filter, $options);
Chris@0 217 }
Chris@0 218
Chris@0 219 /**
Chris@0 220 * Returns an iterator for parameters.
Chris@0 221 *
Chris@0 222 * @return \ArrayIterator An \ArrayIterator instance
Chris@0 223 */
Chris@0 224 public function getIterator()
Chris@0 225 {
Chris@0 226 return new \ArrayIterator($this->parameters);
Chris@0 227 }
Chris@0 228
Chris@0 229 /**
Chris@0 230 * Returns the number of parameters.
Chris@0 231 *
Chris@0 232 * @return int The number of parameters
Chris@0 233 */
Chris@0 234 public function count()
Chris@0 235 {
Chris@0 236 return count($this->parameters);
Chris@0 237 }
Chris@0 238 }