diff --git a/core/lib/Drupal/Core/CoreServiceProvider.php b/core/lib/Drupal/Core/CoreServiceProvider.php index 413c650d4fbd55e78e2b1729d39818d4d609722d..005d535d0bff4209f5b80c8d1fb517aad6ed09a9 100644 --- a/core/lib/Drupal/Core/CoreServiceProvider.php +++ b/core/lib/Drupal/Core/CoreServiceProvider.php @@ -136,6 +136,9 @@ public function alter(ContainerBuilder $container) { foreach ($services as $id => $class) { if (!$container->hasDefinition($id)) { $definition = $container->register($id, $class); + // Mark the fallback services as deprecated in order to allow other + // modules to provide additional checks before relying or altering them. + $definition->setDeprecated(TRUE, 'The "%service_id%" service is in fallback mode. See https://drupal.org/node/3092086'); switch ($id) { case 'path_alias.subscriber': $definition->addArgument(new Reference('path.alias_manager')); diff --git a/core/modules/workspaces/src/WorkspacesServiceProvider.php b/core/modules/workspaces/src/WorkspacesServiceProvider.php index 4df0da6db5652c6fe3ace11012d49184ab63019c..adc08bbce3ae1dd9ed4f0f4531538638263b4a38 100644 --- a/core/modules/workspaces/src/WorkspacesServiceProvider.php +++ b/core/modules/workspaces/src/WorkspacesServiceProvider.php @@ -22,9 +22,14 @@ public function alter(ContainerBuilder $container) { $container->setParameter('renderer.config', $renderer_config); // Replace the class of the 'path_alias.repository' service. - $container->getDefinition('path_alias.repository') - ->setClass(WorkspacesAliasRepository::class) - ->addMethodCall('setWorkspacesManager', [new Reference('workspaces.manager')]); + if ($container->hasDefinition('path_alias.repository')) { + $definition = $container->getDefinition('path_alias.repository'); + if (!$definition->isDeprecated()) { + $definition + ->setClass(WorkspacesAliasRepository::class) + ->addMethodCall('setWorkspacesManager', [new Reference('workspaces.manager')]); + } + } // Ensure that there's no active workspace while running database updates by // removing the relevant tag from all workspace negotiator services.