public function LanguageHierarchyServiceProvider::alter in Language Hierarchy 2.x
Same name and namespace in other branches
- 8 src/LanguageHierarchyServiceProvider.php \Drupal\language_hierarchy\LanguageHierarchyServiceProvider::alter()
Modifies existing service definitions.
Parameters
ContainerBuilder $container: The ContainerBuilder whose service definitions can be altered.
Overrides ServiceProviderBase::alter
File
- src/
LanguageHierarchyServiceProvider.php, line 17
Class
- LanguageHierarchyServiceProvider
- Overrides the language overrides config factory service to use fallbacks.
Namespace
Drupal\language_hierarchyCode
public function alter(ContainerBuilder $container) {
$definition = $container
->getDefinition('language.config_factory_override');
$definition
->setClass('Drupal\\language_hierarchy\\Config\\LanguageHierarchyConfigFactoryOverride');
$modules = $container
->getParameter('container.modules');
// Decorate locale.storage only if locale module is enabled.
if (isset($modules['locale'])) {
$container
->register('language_hierarchy.string_database_storage_decorator', 'Drupal\\language_hierarchy\\StringDatabaseStorageDecorator')
->setDecoratedService('locale.storage')
->addArgument(new Reference('language_hierarchy.string_database_storage_decorator.inner'))
->addArgument(new Reference('language_manager'))
->addArgument(new Reference('database'));
}
// Add RouteSubscriber only if Config Translation module is enabled.
if (isset($modules['config_translation'])) {
$container
->register('language_hierarchy.route_subscriber', 'Drupal\\language_hierarchy\\Routing\\RouteSubscriber')
->addArgument(new Reference('plugin.manager.config_translation.mapper'))
->addTag('event_subscriber');
}
}