diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/BackendCompilerPass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/BackendCompilerPass.php index e4aedcb..deb86e3 100644 --- a/core/lib/Drupal/Core/DependencyInjection/Compiler/BackendCompilerPass.php +++ b/core/lib/Drupal/Core/DependencyInjection/Compiler/BackendCompilerPass.php @@ -42,11 +42,17 @@ class BackendCompilerPass implements CompilerPassInterface { * {@inheritdoc} */ public function process(ContainerBuilder $container) { - $default_backend = $container->hasParameter('default_backend') ? $container->getParameter('default_backend') : NULL; - // No default backend was configured, so continue as normal. - if (!isset($default_backend)) { - return; + if ($container->hasParameter('default_backend')) { + $default_backend = $container->getParameter('default_backend'); + // Opt out from the default backend. + if (!$default_backend) { + return; + } } + else { + $default_backend = $container->get('database')->driver(); + } + foreach ($container->findTaggedServiceIds('backend_overridable') as $id => $attributes) { // If the service is already an alias it is not the original backend, so diff --git a/sites/default/default.services.yml b/sites/default/default.services.yml index ecb1c43..099912a 100644 --- a/sites/default/default.services.yml +++ b/sites/default/default.services.yml @@ -96,3 +96,7 @@ parameters: # Default key/value expirable storage service to use. # @default keyvalue.database.expirable # default: keyvalue.database.expirable + # default_backend: "" + # Services are automatically overriden per the default backend which + # defaults to the database driver. A different default can be set or + # an empty string disables this mechanism.