Mercurial > hg > isophonics-drupal-site
diff vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line diff
--- a/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php Mon Apr 23 09:33:26 2018 +0100 +++ b/vendor/symfony/dependency-injection/ParameterBag/ParameterBag.php Mon Apr 23 09:46:53 2018 +0100 @@ -25,6 +25,8 @@ protected $parameters = array(); protected $resolved = false; + private $normalizedNames = array(); + /** * @param array $parameters An array of parameters */ @@ -49,7 +51,7 @@ public function add(array $parameters) { foreach ($parameters as $key => $value) { - $this->parameters[strtolower($key)] = $value; + $this->set($key, $value); } } @@ -66,7 +68,7 @@ */ public function get($name) { - $name = strtolower($name); + $name = $this->normalizeName($name); if (!array_key_exists($name, $this->parameters)) { if (!$name) { @@ -111,7 +113,7 @@ */ public function set($name, $value) { - $this->parameters[strtolower($name)] = $value; + $this->parameters[$this->normalizeName($name)] = $value; } /** @@ -119,7 +121,7 @@ */ public function has($name) { - return array_key_exists(strtolower($name), $this->parameters); + return array_key_exists($this->normalizeName($name), $this->parameters); } /** @@ -129,7 +131,7 @@ */ public function remove($name) { - unset($this->parameters[strtolower($name)]); + unset($this->parameters[$this->normalizeName($name)]); } /** @@ -167,20 +169,20 @@ * * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem. + * @throws RuntimeException when a given parameter has a type problem */ public function resolveValue($value, array $resolving = array()) { - if (is_array($value)) { + if (\is_array($value)) { $args = array(); foreach ($value as $k => $v) { - $args[$this->resolveValue($k, $resolving)] = $this->resolveValue($v, $resolving); + $args[\is_string($k) ? $this->resolveValue($k, $resolving) : $k] = $this->resolveValue($v, $resolving); } return $args; } - if (!is_string($value)) { + if (!\is_string($value) || 2 > \strlen($value)) { return $value; } @@ -197,7 +199,7 @@ * * @throws ParameterNotFoundException if a placeholder references a parameter that does not exist * @throws ParameterCircularReferenceException if a circular reference if detected - * @throws RuntimeException when a given parameter has a type problem. + * @throws RuntimeException when a given parameter has a type problem */ public function resolveString($value, array $resolving = array()) { @@ -206,7 +208,7 @@ // a non-string in a parameter value if (preg_match('/^%([^%\s]+)%$/', $value, $match)) { $key = $match[1]; - $lcKey = strtolower($key); + $lcKey = strtolower($key); // strtolower() to be removed in 4.0 if (isset($resolving[$lcKey])) { throw new ParameterCircularReferenceException(array_keys($resolving)); @@ -224,7 +226,7 @@ } $key = $match[1]; - $lcKey = strtolower($key); + $lcKey = strtolower($key); // strtolower() to be removed in 4.0 if (isset($resolving[$lcKey])) { throw new ParameterCircularReferenceException(array_keys($resolving)); } @@ -288,4 +290,18 @@ return $value; } + + private function normalizeName($name) + { + if (isset($this->normalizedNames[$normalizedName = strtolower($name)])) { + $normalizedName = $this->normalizedNames[$normalizedName]; + if ((string) $name !== $normalizedName) { + @trigger_error(sprintf('Parameter names will be made case sensitive in Symfony 4.0. Using "%s" instead of "%s" is deprecated since Symfony 3.4.', $name, $normalizedName), E_USER_DEPRECATED); + } + } else { + $normalizedName = $this->normalizedNames[$normalizedName] = (string) $name; + } + + return $normalizedName; + } }