function CoreServiceProvider::register

Same name in other branches
  1. 9 core/lib/Drupal/Core/CoreServiceProvider.php \Drupal\Core\CoreServiceProvider::register()
  2. 8.9.x core/lib/Drupal/Core/CoreServiceProvider.php \Drupal\Core\CoreServiceProvider::register()
  3. 10 core/lib/Drupal/Core/CoreServiceProvider.php \Drupal\Core\CoreServiceProvider::register()

Overrides ServiceProviderInterface::register

File

core/lib/Drupal/Core/CoreServiceProvider.php, line 56

Class

CoreServiceProvider
ServiceProvider class for mandatory core services.

Namespace

Drupal\Core

Code

public function register(ContainerBuilder $container) {
    $this->registerTest($container);
    // Only register the private file stream wrapper if a file path has been set.
    if (Settings::get('file_private_path')) {
        $container->register('stream_wrapper.private', 'Drupal\\Core\\StreamWrapper\\PrivateStream')
            ->addTag('stream_wrapper', [
            'scheme' => 'private',
        ]);
    }
    $container->addCompilerPass(new HookCollectorPass());
    // Add the compiler pass that lets service providers modify existing
    // service definitions. This pass must come before all passes operating on
    // services so that later list-building passes are operating on the
    // post-alter services list.
    $container->addCompilerPass(new ModifyServiceDefinitionsPass());
    $container->addCompilerPass(new DevelopmentSettingsPass());
    $container->addCompilerPass(new SuperUserAccessPolicyPass());
    $container->addCompilerPass(new ProxyServicesPass());
    $container->addCompilerPass(new BackendCompilerPass());
    $container->addCompilerPass(new CorsCompilerPass());
    $container->addCompilerPass(new StackedKernelPass());
    $container->addCompilerPass(new StackedSessionHandlerPass());
    $container->addCompilerPass(new MainContentRenderersPass());
    // Collect tagged handler services as method calls on consumer services.
    $container->addCompilerPass(new TaggedHandlersPass());
    $container->addCompilerPass(new RegisterStreamWrappersPass());
    $container->addCompilerPass(new TwigExtensionPass());
    // Add a compiler pass for registering event subscribers.
    $container->addCompilerPass(new RegisterEventSubscribersPass(new RegisterListenersPass()), PassConfig::TYPE_AFTER_REMOVING);
    $container->addCompilerPass(new LoggerAwarePass(), PassConfig::TYPE_AFTER_REMOVING);
    $container->addCompilerPass(new RegisterAccessChecksPass());
    // Add a compiler pass for registering services needing destruction.
    $container->addCompilerPass(new RegisterServicesForDestructionPass());
    // Add the compiler pass that will process the tagged services.
    $container->addCompilerPass(new ListCacheBinsPass());
    $container->addCompilerPass(new CacheContextsPass());
    $container->addCompilerPass(new AuthenticationProviderPass());
    // Register plugin managers.
    $container->addCompilerPass(new PluginManagerPass());
    $container->addCompilerPass(new DeprecatedServicePass());
    $container->registerForAutoconfiguration(EventSubscriberInterface::class)
        ->addTag('event_subscriber');
    $container->registerForAutoconfiguration(LoggerAwareInterface::class)
        ->addTag('logger_aware');
    $container->registerForAutoconfiguration(QueueFactoryInterface::class)
        ->addTag('queue_factory');
    $container->registerForAutoconfiguration(ModuleUninstallValidatorInterface::class)
        ->addTag('module_install.uninstall_validator');
    // Deprecated parameters.
    if ($container->hasParameter('session.storage.options')) {
        $session_storage_options = $container->getParameter('session.storage.options');
        if (array_key_exists('sid_length', $session_storage_options)) {
            @trigger_error('The "sid_length" parameter is deprecated in drupal:11.1.0 and will be removed in drupal:12.0.0. This setting should be removed from the settings file, since its usage has been removed. See https://www.drupal.org/node/3469305', E_USER_DEPRECATED);
        }
        if (array_key_exists('sid_bits_per_character', $session_storage_options)) {
            @trigger_error('The "sid_bits_per_character" parameter is deprecated in drupal:11.1.0 and will be removed in drupal:12.0.0. This setting should be removed from the settings file, since its usage has been removed. See https://www.drupal.org/node/3469305', E_USER_DEPRECATED);
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.