function WorkspacesServiceProvider::alter
Same name in other branches
- 9 core/modules/workspaces/src/WorkspacesServiceProvider.php \Drupal\workspaces\WorkspacesServiceProvider::alter()
- 8.9.x core/modules/workspaces/src/WorkspacesServiceProvider.php \Drupal\workspaces\WorkspacesServiceProvider::alter()
- 11.x core/modules/workspaces/src/WorkspacesServiceProvider.php \Drupal\workspaces\WorkspacesServiceProvider::alter()
Overrides ServiceProviderBase::alter
File
-
core/
modules/ workspaces/ src/ WorkspacesServiceProvider.php, line 18
Class
- WorkspacesServiceProvider
- Defines a service provider for the Workspaces module.
Namespace
Drupal\workspacesCode
public function alter(ContainerBuilder $container) {
// Add the 'workspace' cache context as required.
$renderer_config = $container->getParameter('renderer.config');
$renderer_config['required_cache_contexts'][] = 'workspace';
$container->setParameter('renderer.config', $renderer_config);
// Decorate the 'path_alias.manager' service.
if ($container->hasDefinition('path_alias.manager')) {
$container->register('workspaces.path_alias.manager', WorkspacesAliasManager::class)
->setPublic(FALSE)
->setDecoratedService('path_alias.manager', NULL, 50)
->addArgument(new Reference('workspaces.path_alias.manager.inner'))
->addArgument(new Reference('workspaces.manager'));
}
// Replace the class of the 'path_alias.repository' service.
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.
if ($container->get('kernel') instanceof UpdateKernel) {
foreach ($container->getDefinitions() as $definition) {
if ($definition->hasTag('workspace_negotiator')) {
$definition->clearTag('workspace_negotiator');
}
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.