diff --git a/core/lib/Drupal/Core/DependencyInjection/ServiceProviderBase.php b/core/lib/Drupal/Core/DependencyInjection/ServiceProviderBase.php new file mode 100644 index 0000000000000000000000000000000000000000..c633395f6cef364a6b149811b229136f829566a3 --- /dev/null +++ b/core/lib/Drupal/Core/DependencyInjection/ServiceProviderBase.php @@ -0,0 +1,27 @@ +<?php + +/** + * @file + * Contains \Drupal\Core\DependencyInjection\ServiceProviderBase. + */ + +namespace Drupal\Core\DependencyInjection; + +/** + * Base service provider implementation. + */ +abstract class ServiceProviderBase implements ServiceProviderInterface, ServiceModifierInterface { + + /** + * {@inheritdoc} + */ + public function register(ContainerBuilder $container) { + } + + /** + * {@inheritdoc} + */ + public function alter(ContainerBuilder $container) { + } + +} diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index 884b27170fd948c676adba5c501d59ee030a2884..3e97607034065653937eb68a11b97154eb0358e1 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -11,6 +11,7 @@ use Drupal\Core\Config\BootstrapConfigStorageFactory; use Drupal\Core\CoreServiceProvider; use Drupal\Core\DependencyInjection\ContainerBuilder; +use Drupal\Core\DependencyInjection\ServiceProviderInterface; use Drupal\Core\DependencyInjection\YamlFileLoader; use Symfony\Component\Config\Loader\LoaderInterface; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag; @@ -515,7 +516,9 @@ protected function buildContainer() { $yaml_loader->load($filename); } foreach ($this->serviceProviders as $provider) { - $provider->register($container); + if ($provider instanceof ServiceProviderInterface) { + $provider->register($container); + } } // Identify all services whose instances should be persisted when rebuilding diff --git a/core/modules/language/tests/language_test/lib/Drupal/language_test/LanguageTestServiceProvider.php b/core/modules/language/tests/language_test/lib/Drupal/language_test/LanguageTestServiceProvider.php index c8b16330327e4c1c37da695e8eb55d6e409dec65..39aef04470d5b036097d3c538fa6da6cdf250a34 100644 --- a/core/modules/language/tests/language_test/lib/Drupal/language_test/LanguageTestServiceProvider.php +++ b/core/modules/language/tests/language_test/lib/Drupal/language_test/LanguageTestServiceProvider.php @@ -9,19 +9,11 @@ use Drupal\Core\DependencyInjection\ContainerBuilder; use Drupal\Core\DependencyInjection\ServiceModifierInterface; -use Drupal\Core\DependencyInjection\ServiceProviderInterface; /** * Defines the LanguageTest service provider. */ -class LanguageTestServiceProvider implements ServiceProviderInterface, ServiceModifierInterface { - - /** - * {@inheritdoc} - */ - public function register(ContainerBuilder $container) { - - } +class LanguageTestServiceProvider implements ServiceModifierInterface { /** * {@inheritdoc} diff --git a/core/modules/system/tests/modules/service_provider_test/lib/Drupal/service_provider_test/ServiceProviderTestServiceProvider.php b/core/modules/system/tests/modules/service_provider_test/lib/Drupal/service_provider_test/ServiceProviderTestServiceProvider.php index b2b85cbd75bced60ab3a821ccee05a014ba8c616..c3b14b34b9e2e2fc1426cc8fc2dada42232f2326 100644 --- a/core/modules/system/tests/modules/service_provider_test/lib/Drupal/service_provider_test/ServiceProviderTestServiceProvider.php +++ b/core/modules/system/tests/modules/service_provider_test/lib/Drupal/service_provider_test/ServiceProviderTestServiceProvider.php @@ -8,17 +8,9 @@ namespace Drupal\service_provider_test; use Drupal\Core\DependencyInjection\ContainerBuilder; -use Drupal\Core\DependencyInjection\ServiceProviderInterface; use Drupal\Core\DependencyInjection\ServiceModifierInterface; -class ServiceProviderTestServiceProvider implements ServiceProviderInterface, ServiceModifierInterface { - - /** - * {@inheritdoc} - */ - public function register(ContainerBuilder $container) { - - } +class ServiceProviderTestServiceProvider implements ServiceModifierInterface { /** * {@inheritdoc}