diff --git a/UPGRADE-4.0.md b/UPGRADE-4.0.md
index f94259329e5a0..812d2ba5e90fd 100644
--- a/UPGRADE-4.0.md
+++ b/UPGRADE-4.0.md
@@ -146,7 +146,7 @@ DependencyInjection
```
- * Service identifiers are now case sensitive.
+ * Service identifiers and parameter names are now case sensitive.
* The `Reference` and `Alias` classes do not make service identifiers lowercase anymore.
diff --git a/src/Symfony/Component/DependencyInjection/CHANGELOG.md b/src/Symfony/Component/DependencyInjection/CHANGELOG.md
index 1e51a5c927f29..26df6aa372f7f 100644
--- a/src/Symfony/Component/DependencyInjection/CHANGELOG.md
+++ b/src/Symfony/Component/DependencyInjection/CHANGELOG.md
@@ -21,6 +21,7 @@ CHANGELOG
* removed silent behavior for unused attributes and elements
* removed support for setting and accessing private services in `Container`
* removed support for setting pre-defined services in `Container`
+ * removed support for case insensitivity of parameter names
3.4.0
-----
diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
index 93a0ccda3eeba..0c955341a46e8 100644
--- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
+++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
@@ -1039,15 +1039,11 @@ private function addDefaultParametersMethod()
$php = array();
$dynamicPhp = array();
- $normalizedParams = array();
foreach ($this->container->getParameterBag()->all() as $key => $value) {
if ($key !== $resolvedKey = $this->container->resolveEnvPlaceholders($key)) {
throw new InvalidArgumentException(sprintf('Parameter name cannot use env parameters: %s.', $resolvedKey));
}
- if ($key !== $lcKey = strtolower($key)) {
- $normalizedParams[] = sprintf(' %s => %s,', $this->export($lcKey), $this->export($key));
- }
$export = $this->exportParameters(array($value));
$export = explode('0 => ', substr(rtrim($export, " )\n"), 7, -1), 2);
@@ -1066,12 +1062,10 @@ private function addDefaultParametersMethod()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -1085,7 +1079,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -1155,30 +1149,6 @@ private function getDynamicParameter(\$name)
{$getDynamicParameter}
}
-
-EOF;
-
- $code .= ' private $normalizedParameterNames = '.($normalizedParams ? sprintf("array(\n%s\n );", implode("\n", $normalizedParams)) : 'array();')."\n";
- $code .= <<<'EOF'
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
-EOF;
-
- $code .= <<docStar}
* Gets the default parameters.
*
@@ -1643,7 +1613,7 @@ private function getServiceCall($id, Reference $reference = null)
if ('service_container' === $id) {
return '$this';
}
-
+
if ($this->container->hasDefinition($id)) {
$definition = $this->container->getDefinition($id);
diff --git a/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php b/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
index 1a9ca6fa4d4fb..d623428ef2abb 100644
--- a/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
+++ b/src/Symfony/Component/DependencyInjection/ParameterBag/ParameterBag.php
@@ -25,8 +25,6 @@ class ParameterBag implements ParameterBagInterface
protected $parameters = array();
protected $resolved = false;
- private $normalizedNames = array();
-
/**
* @param array $parameters An array of parameters
*/
@@ -68,7 +66,7 @@ public function all()
*/
public function get($name)
{
- $name = $this->normalizeName($name);
+ $name = (string) $name;
if (!array_key_exists($name, $this->parameters)) {
if (!$name) {
@@ -113,7 +111,7 @@ public function get($name)
*/
public function set($name, $value)
{
- $this->parameters[$this->normalizeName($name)] = $value;
+ $this->parameters[(string) $name] = $value;
}
/**
@@ -121,7 +119,7 @@ public function set($name, $value)
*/
public function has($name)
{
- return array_key_exists($this->normalizeName($name), $this->parameters);
+ return array_key_exists((string) $name, $this->parameters);
}
/**
@@ -131,7 +129,7 @@ public function has($name)
*/
public function remove($name)
{
- unset($this->parameters[$this->normalizeName($name)]);
+ unset($this->parameters[(string) $name]);
}
/**
@@ -208,13 +206,12 @@ public function resolveString($value, array $resolving = array())
// a non-string in a parameter value
if (preg_match('/^%([^%\s]+)%$/', $value, $match)) {
$key = $match[1];
- $lcKey = strtolower($key); // strtolower() to be removed in 4.0
- if (isset($resolving[$lcKey])) {
+ if (isset($resolving[$key])) {
throw new ParameterCircularReferenceException(array_keys($resolving));
}
- $resolving[$lcKey] = true;
+ $resolving[$key] = true;
return $this->resolved ? $this->get($key) : $this->resolveValue($this->get($key), $resolving);
}
@@ -226,8 +223,7 @@ public function resolveString($value, array $resolving = array())
}
$key = $match[1];
- $lcKey = strtolower($key); // strtolower() to be removed in 4.0
- if (isset($resolving[$lcKey])) {
+ if (isset($resolving[$key])) {
throw new ParameterCircularReferenceException(array_keys($resolving));
}
@@ -238,7 +234,7 @@ public function resolveString($value, array $resolving = array())
}
$resolved = (string) $resolved;
- $resolving[$lcKey] = true;
+ $resolving[$key] = true;
return $this->isResolved() ? $resolved : $this->resolveString($resolved, $resolving);
}, $value);
@@ -290,18 +286,4 @@ public function unescapeValue($value)
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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
index d48c2460dc2fc..ba8e28cec3711 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php
@@ -1098,19 +1098,15 @@ public function testCaseSensitivity()
$this->assertSame($container->get('fOO')->Foo->foo, $container->get('foo'), '->get() returns the service for the given id, case sensitively');
}
- /**
- * @group legacy
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "FOO" instead of "foo" is deprecated since version 3.4.
- */
public function testParameterWithMixedCase()
{
- $container = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
+ $container = new ContainerBuilder(new ParameterBag(array('foo' => 'bar', 'FOO' => 'BAR')));
$container->register('foo', 'stdClass')
->setProperty('foo', '%FOO%');
$container->compile();
- $this->assertSame('bar', $container->get('foo')->foo);
+ $this->assertSame('BAR', $container->get('foo')->foo);
}
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php b/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
index 30eefb5546d72..513dff8450779 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/ContainerTest.php
@@ -121,18 +121,13 @@ public function testGetSetParameter()
}
}
- /**
- * @group legacy
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "Foo" instead of "foo" is deprecated since version 3.4.
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "FOO" instead of "foo" is deprecated since version 3.4.
- */
public function testGetSetParameterWithMixedCase()
{
$sc = new Container(new ParameterBag(array('foo' => 'bar')));
$sc->setParameter('Foo', 'baz1');
- $this->assertEquals('baz1', $sc->getParameter('foo'), '->setParameter() converts the key to lowercase');
- $this->assertEquals('baz1', $sc->getParameter('FOO'), '->getParameter() converts the key to lowercase');
+ $this->assertEquals('bar', $sc->getParameter('foo'));
+ $this->assertEquals('baz1', $sc->getParameter('Foo'));
}
public function testGetServiceIds()
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
index 47356e2d5c8a8..af60d67ca23e8 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
@@ -651,12 +651,6 @@ public function testPrivateServiceTriggersDeprecation()
$container->get('bar');
}
- /**
- * @group legacy
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "foo" instead of "Foo" is deprecated since version 3.4.
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "FOO" instead of "Foo" is deprecated since version 3.4.
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "bar" instead of "BAR" is deprecated since version 3.4.
- */
public function testParameterWithMixedCase()
{
$container = new ContainerBuilder(new ParameterBag(array('Foo' => 'bar', 'BAR' => 'foo')));
@@ -667,26 +661,7 @@ public function testParameterWithMixedCase()
$container = new \Symfony_DI_PhpDumper_Test_Parameter_With_Mixed_Case();
- $this->assertSame('bar', $container->getParameter('foo'));
- $this->assertSame('bar', $container->getParameter('FOO'));
- $this->assertSame('foo', $container->getParameter('bar'));
+ $this->assertSame('bar', $container->getParameter('Foo'));
$this->assertSame('foo', $container->getParameter('BAR'));
}
-
- /**
- * @group legacy
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "FOO" instead of "foo" is deprecated since version 3.4.
- */
- public function testParameterWithLowerCase()
- {
- $container = new ContainerBuilder(new ParameterBag(array('foo' => 'bar')));
- $container->compile();
-
- $dumper = new PhpDumper($container);
- eval('?>'.$dumper->dump(array('class' => 'Symfony_DI_PhpDumper_Test_Parameter_With_Lower_Case')));
-
- $container = new \Symfony_DI_PhpDumper_Test_Parameter_With_Lower_Case();
-
- $this->assertSame('bar', $container->getParameter('FOO'));
- }
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
index 582472b38bd7a..d914e82378567 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php
@@ -77,12 +77,10 @@ protected function getTestService()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -96,7 +94,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -142,22 +140,6 @@ private function getDynamicParameter($name)
throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
}
- private $normalizedParameterNames = array();
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
index f5db7d75d4b43..6df51ea0899bb 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services12.php
@@ -81,12 +81,10 @@ protected function getTestService()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -100,7 +98,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -156,22 +154,6 @@ private function getDynamicParameter($name)
return $this->dynamicParameters[$name] = $value;
}
- private $normalizedParameterNames = array();
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php
index f7eb32e55e75f..5d5978f1fcf45 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services26.php
@@ -79,12 +79,10 @@ protected function getTestService()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -98,7 +96,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -152,24 +150,6 @@ private function getDynamicParameter($name)
return $this->dynamicParameters[$name] = $value;
}
- private $normalizedParameterNames = array(
- 'env(foo)' => 'env(FOO)',
- );
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
index bbd0b34c58f3c..0344b03935341 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php
@@ -64,12 +64,10 @@ public function isCompiled()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -83,7 +81,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -129,22 +127,6 @@ private function getDynamicParameter($name)
throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
}
- private $normalizedParameterNames = array();
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
index d5f8d4f65e0a1..66df2f0e0dcfb 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_as_files.txt
@@ -382,12 +382,10 @@ class Container%s extends Container
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -401,7 +399,7 @@ class Container%s extends Container
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -447,22 +445,6 @@ class Container%s extends Container
throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
}
- private $normalizedParameterNames = array();
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
index 30f58e1d974fd..76470376239f3 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
@@ -391,12 +391,10 @@ protected function getFactorySimpleService()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -410,7 +408,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -456,22 +454,6 @@ private function getDynamicParameter($name)
throw new InvalidArgumentException(sprintf('The dynamic parameter "%s" must be defined.', $name));
}
- private $normalizedParameterNames = array();
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php
index bf9e7c1dcfffa..ae3da978af978 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services_array_params.php
@@ -85,12 +85,10 @@ protected function getBarService()
*/
public function getParameter($name)
{
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
- if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
- throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
- }
+ if (!(isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters))) {
+ throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
}
if (isset($this->loadedDynamicParameters[$name])) {
return $this->loadedDynamicParameters[$name] ? $this->dynamicParameters[$name] : $this->getDynamicParameter($name);
@@ -104,7 +102,7 @@ public function getParameter($name)
*/
public function hasParameter($name)
{
- $name = $this->normalizeParameterName($name);
+ $name = (string) $name;
return isset($this->parameters[$name]) || isset($this->loadedDynamicParameters[$name]) || array_key_exists($name, $this->parameters);
}
@@ -160,22 +158,6 @@ private function getDynamicParameter($name)
return $this->dynamicParameters[$name] = $value;
}
- private $normalizedParameterNames = array();
-
- private function normalizeParameterName($name)
- {
- if (isset($this->normalizedParameterNames[$normalizedName = strtolower($name)]) || isset($this->parameters[$normalizedName]) || array_key_exists($normalizedName, $this->parameters)) {
- $normalizedName = isset($this->normalizedParameterNames[$normalizedName]) ? $this->normalizedParameterNames[$normalizedName] : $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 version 3.4.', $name, $normalizedName), E_USER_DEPRECATED);
- }
- } else {
- $normalizedName = $this->normalizedParameterNames[$normalizedName] = (string) $name;
- }
-
- return $normalizedName;
- }
-
/**
* Gets the default parameters.
*
diff --git a/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php b/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
index 3bac9ca64e20d..c53decf8f017d 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/ParameterBag/ParameterBagTest.php
@@ -106,28 +106,20 @@ public function testHas()
$this->assertFalse($bag->has('bar'), '->has() returns false if a parameter is not defined');
}
- /**
- * @group legacy
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "BAR" instead of "bar" is deprecated since version 3.4.
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "Foo" instead of "foo" is deprecated since version 3.4.
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "FOO" instead of "foo" is deprecated since version 3.4.
- * @expectedDeprecation Parameter names will be made case sensitive in Symfony 4.0. Using "Foo" instead of "foo" is deprecated since version 3.4.
- */
public function testMixedCase()
{
$bag = new ParameterBag(array(
'foo' => 'foo',
'bar' => 'bar',
+ 'BAR' => 'baz',
));
$bag->remove('BAR');
- $this->assertEquals(array('foo' => 'foo'), $bag->all(), '->remove() converts key to lowercase before removing');
+ $this->assertEquals(array('foo' => 'foo', 'bar' => 'bar'), $bag->all());
$bag->set('Foo', 'baz1');
- $this->assertEquals('baz1', $bag->get('foo'), '->set() converts the key to lowercase');
- $this->assertEquals('baz1', $bag->get('FOO'), '->get() converts the key to lowercase');
-
- $this->assertTrue($bag->has('Foo'), '->has() converts the key to lowercase');
+ $this->assertEquals('foo', $bag->get('foo'));
+ $this->assertEquals('baz1', $bag->get('Foo'));
}
public function testResolveValue()