class UpdateServiceProvider in Drupal 9
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Update/UpdateServiceProvider.php \Drupal\Core\Update\UpdateServiceProvider
Customizes the container for running updates.
Hierarchy
- class \Drupal\Core\Update\UpdateServiceProvider implements ServiceModifierInterface, ServiceProviderInterface
Expanded class hierarchy of UpdateServiceProvider
File
- core/
lib/ Drupal/ Core/ Update/ UpdateServiceProvider.php, line 15
Namespace
Drupal\Core\UpdateView source
class UpdateServiceProvider implements ServiceProviderInterface, ServiceModifierInterface {
/**
* {@inheritdoc}
*/
public function register(ContainerBuilder $container) {
$definition = new Definition('Drupal\\Core\\Cache\\NullBackend', [
'null',
]);
if (method_exists($definition, 'getDeprecation')) {
$definition
->setDeprecated('drupal/core', '8.8.0', 'The "%service_id%\\" service is deprecated. While updating Drupal all caches use \\Drupal\\Core\\Update\\UpdateBackend. See https://www.drupal.org/node/3066407');
}
else {
// @todo Remove when we no longer support Symfony 4 in
// https://www.drupal.org/project/drupal/issues/3197729
$definition
->setDeprecated(TRUE, 'The "%service_id%\\" service is deprecated. While updating Drupal all caches use \\Drupal\\Core\\Update\\UpdateBackend. See https://www.drupal.org/node/3066407');
}
$definition
->setPublic(TRUE);
$container
->setDefinition('cache.null', $definition);
// Decorate the cache factory in order to use
// \Drupal\Core\Update\UpdateBackend while running updates.
$container
->register('update.cache_factory', UpdateCacheBackendFactory::class)
->setDecoratedService('cache_factory')
->addArgument(new Reference('update.cache_factory.inner'));
$container
->addCompilerPass(new UpdateCompilerPass(), PassConfig::TYPE_REMOVE, 128);
}
/**
* {@inheritdoc}
*/
public function alter(ContainerBuilder $container) {
// The alias-based processor requires the path_alias entity schema to be
// installed, so we prevent it from being registered to the path processor
// manager. We do this by removing the tags that the compiler pass looks
// for. This means that the URL generator can safely be used during the
// database update process.
if ($container
->hasDefinition('path_alias.path_processor')) {
$container
->getDefinition('path_alias.path_processor')
->clearTag('path_processor_inbound')
->clearTag('path_processor_outbound');
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
UpdateServiceProvider:: |
public | function |
Modifies existing service definitions. Overrides ServiceModifierInterface:: |
|
UpdateServiceProvider:: |
public | function |
Registers services to the container. Overrides ServiceProviderInterface:: |