diff --git a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php index cb858785732..d6b1cd62867 100644 --- a/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php +++ b/core/lib/Drupal/Core/DependencyInjection/ContainerBuilder.php @@ -41,6 +41,9 @@ class ContainerBuilder extends SymfonyContainerBuilder { * services in a frozen builder. */ public function set($id, $service, $scope = self::SCOPE_CONTAINER) { + if (strtolower($id) !== $id) { + throw new \InvalidArgumentException("Service ID names must be lowercase: $id"); + } SymfonyContainer::set($id, $service, $scope); // Ensure that the _serviceId property is set on synthetic services as well. @@ -49,6 +52,26 @@ class ContainerBuilder extends SymfonyContainerBuilder { } } + /** + * {@inheritdoc} + */ + public function register($id, $class = null) { + if (strtolower($id) !== $id) { + throw new \InvalidArgumentException("Service ID names must be lowercase: $id"); + } + return parent::register($id, $class); + } + + /** + * {@inheritdoc} + */ + public function setParameter($name, $value) { + if (strtolower($name) !== $name) { + throw new \InvalidArgumentException("Parameter names must be lowercase: $name"); + } + parent::setParameter($name, $value); + } + /** * Synchronizes a service change. * diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index 815f7f3387a..8202cd6077c 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -977,7 +977,7 @@ class DrupalKernel implements DrupalKernelInterface, TerminableInterface { */ protected function getServicesToPersist(ContainerInterface $container) { $persist = array(); - foreach ($container->getParameter('persistIds') as $id) { + foreach ($container->getParameter('persist_ids') as $id) { // It's pointless to persist services not yet initialized. if ($container->initialized($id)) { $persist[$id] = $container->get($id); @@ -1127,7 +1127,7 @@ class DrupalKernel implements DrupalKernelInterface, TerminableInterface { $persist_ids[] = $id; } } - $container->setParameter('persistIds', $persist_ids); + $container->setParameter('persist_ids', $persist_ids); $container->compile(); return $container; diff --git a/core/modules/config/src/Tests/DefaultConfigTest.php b/core/modules/config/src/Tests/DefaultConfigTest.php index 99ff07a6d51..9e32a45056f 100644 --- a/core/modules/config/src/Tests/DefaultConfigTest.php +++ b/core/modules/config/src/Tests/DefaultConfigTest.php @@ -53,12 +53,12 @@ class DefaultConfigTest extends KernelTestBase { */ public function containerBuild(ContainerBuilder $container) { parent::containerBuild($container); - $container->register('DefaultConfigTest.schema_storage') + $container->register('default_config_test.schema_storage') ->setClass('\Drupal\config_test\TestInstallStorage') ->addArgument(InstallStorage::CONFIG_SCHEMA_DIRECTORY); $definition = $container->getDefinition('config.typed'); - $definition->replaceArgument(1, new Reference('DefaultConfigTest.schema_storage')); + $definition->replaceArgument(1, new Reference('default_config_test.schema_storage')); } /** diff --git a/core/modules/system/tests/modules/form_test/form_test.routing.yml b/core/modules/system/tests/modules/form_test/form_test.routing.yml index 140b17c5c31..8a200a3fc21 100644 --- a/core/modules/system/tests/modules/form_test/form_test.routing.yml +++ b/core/modules/system/tests/modules/form_test/form_test.routing.yml @@ -15,7 +15,7 @@ form_test.route2: form_test.route3: path: '/form-test/object-service-builder' defaults: - _form: 'form_test.form.serviceForm' + _form: 'form_test.form.serviceform' requirements: _access: 'TRUE' diff --git a/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php b/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php index 8a93b6d4da0..0df17c44e88 100644 --- a/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php +++ b/core/tests/Drupal/Tests/Core/DependencyInjection/ContainerBuilderTest.php @@ -38,4 +38,36 @@ class ContainerBuilderTest extends UnitTestCase { $this->assertEquals('bar', $class->_serviceId); } + /** + * @covers ::set + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Service ID names must be lowercase: Bar + */ + public function testSetException() { + $container = new ContainerBuilder(); + $class = new BarClass(); + $container->set('Bar', $class); + $this->assertNotEquals('bar', $class->_serviceId); + } + + /** + * @covers ::setParameter + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Parameter names must be lowercase: Buzz + */ + public function testSetParameterException() { + $container = new ContainerBuilder(); + $container->setParameter('Buzz', 'buzz'); + } + + /** + * @covers ::register + * @expectedException \InvalidArgumentException + * @expectedExceptionMessage Service ID names must be lowercase: Bar + */ + public function testRegisterException() { + $container = new ContainerBuilder(); + $container->register('Bar'); + } + }