UpdateServiceProvider.php in Drupal 10
Same filename and directory in other branches
Namespace
Drupal\Core\UpdateFile
core/lib/Drupal/Core/Update/UpdateServiceProvider.phpView source
<?php
namespace Drupal\Core\Update;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\DependencyInjection\ServiceModifierInterface;
use Drupal\Core\DependencyInjection\ServiceProviderInterface;
use Symfony\Component\DependencyInjection\Compiler\PassConfig;
use Symfony\Component\DependencyInjection\Reference;
/**
* Customizes the container for running updates.
*/
class UpdateServiceProvider implements ServiceProviderInterface, ServiceModifierInterface {
/**
* {@inheritdoc}
*/
public function register(ContainerBuilder $container) {
// 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');
}
}
}
Classes
Name | Description |
---|---|
UpdateServiceProvider | Customizes the container for running updates. |