/** * {@inheritdoc} */ public function register(ContainerBuilder $container) { if (!empty($GLOBALS['conf']['update_service_provider_overrides'])) { // Disable the Lock service. $container->register('lock', 'Drupal\\Core\\Lock\\NullLockBackend'); // Prevent config from being accessed via a cache wrapper by removing // any existing definition and setting an alias to the actual storage. $container->removeDefinition('config.storage'); $container->setAlias('config.storage', 'config.storage.active'); $container->register('cache_factory', 'Drupal\\Core\\Cache\\MemoryBackendFactory'); $container->register('router.builder', 'Drupal\\Core\\Routing\\RouteBuilderStatic'); $container->register('theme_handler', 'Drupal\\Core\\Extension\\ThemeHandler')->addArgument(new Reference('config.factory'))->addArgument(new Reference('module_handler'))->addArgument(new Reference('state'))->addArgument(new Reference('info_parser')); } }
/** * {@inheritdoc} */ public function register(ContainerBuilder $container) { // Inject the special configuration storage for the installer. // This special implementation MUST NOT be used anywhere else than the early // installer environment. $container->register('config.storage', 'Drupal\\Core\\Config\\InstallStorage'); // Replace services with in-memory implementations. $definition = $container->getDefinition('cache_factory'); $definition->setClass('Drupal\\Core\\Cache\\MemoryBackendFactory'); $definition->setArguments(array()); $definition->setMethodCalls(array()); $container->register('keyvalue', 'Drupal\\Core\\KeyValueStore\\KeyValueMemoryFactory'); $container->register('keyvalue.expirable', 'Drupal\\Core\\KeyValueStore\\KeyValueNullExpirableFactory'); // Replace services with no-op implementations. $container->register('lock', 'Drupal\\Core\\Lock\\NullLockBackend'); $container->register('url_generator', 'Drupal\\Core\\Routing\\NullGenerator')->addArgument(new Reference('request_stack')); $container->register('router.dumper', 'Drupal\\Core\\Routing\\NullMatcherDumper'); // Replace the route builder with an empty implementation. // @todo Convert installer steps into routes; add an installer.routing.yml. $definition = $container->getDefinition('router.builder'); $definition->setClass('Drupal\\Core\\Installer\\InstallerRouteBuilder'); // Remove dependencies on Drupal's default session handling. $container->removeDefinition('authentication.cookie'); }