Skip to content
Snippets Groups Projects
core.services.yml 81.6 KiB
Newer Older
  • Learn to ignore specific revisions
  •   # The app.root and site.path parameters are dynamically set by
      # \Drupal\Core\DrupalKernel::initializeContainer(). They are listed here to
      # allow IDEs to autocomplete them when writing new service YAML files.
      app.root: ''
      site.path: ''
    
      session.storage.options:
        gc_probability: 1
        gc_divisor: 100
        gc_maxlifetime: 200000
        cookie_lifetime: 2000000
    
        sid_length: 48
        sid_bits_per_character: 6
    
      twig.config:
        debug: false
        auto_reload: null
        cache: true
    
        allowed_file_extensions:
          - css
          - html
          - js
          - svg
          - twig
    
        required_cache_contexts: ['languages:language_interface', 'theme', 'user.permissions']
    
        auto_placeholder_conditions:
          max-age: 0
          contexts: ['session', 'user']
          tags: []
    
      factory.keyvalue:
        default: keyvalue.database
    
      http.response.debug_cacheability_headers: false
    
      factory.keyvalue.expirable:
        default: keyvalue.expirable.database
    
      filter_protocols:
        - http
        - https
        - ftp
        - news
        - nntp
        - tel
        - telnet
        - mailto
        - irc
        - ssh
        - sftp
        - webcal
        - rtsp
    
      cors.config:
        enabled: false
        allowedHeaders: []
        allowedMethods: []
        allowedOrigins: ['*']
        exposedHeaders: false
        maxAge: false
        supportsCredentials: false
    
      queue.config:
        suspendMaximumWait: 30.0
    
      # Simple cache contexts, directly derived from the request context.
      cache_context.ip:
    
        class: Drupal\Core\Cache\Context\IpCacheContext
    
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
    
      cache_context.protocol_version:
        class: Drupal\Core\Cache\Context\ProtocolVersionCacheContext
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
    
        class: Drupal\Core\Cache\Context\HeadersCacheContext
    
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
      cache_context.cookies:
    
        class: Drupal\Core\Cache\Context\CookiesCacheContext
    
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
    
      cache_context.session:
        class: Drupal\Core\Cache\Context\SessionCacheContext
        arguments: ['@request_stack']
        tags:
          - { name: cache.context}
    
      cache_context.session.exists:
        class: Drupal\Core\Cache\Context\SessionExistsCacheContext
        arguments: ['@session_configuration', '@request_stack']
        tags:
          - { name: cache.context}
    
        class: Drupal\Core\Cache\Context\RequestFormatCacheContext
    
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
    
        class: Drupal\Core\Cache\Context\UrlCacheContext
    
        arguments: ['@request_stack']
    
        class: Drupal\Core\Cache\Context\SiteCacheContext
    
      cache_context.url.path:
        class: Drupal\Core\Cache\Context\PathCacheContext
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
    
      cache_context.url.path.parent:
        class: Drupal\Core\Cache\Context\PathParentCacheContext
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
    
      cache_context.url.path.is_front:
        class: Drupal\Core\Cache\Context\IsFrontPathCacheContext
        arguments: ['@path.matcher']
        tags:
          - { name: cache.context }
    
        class: Drupal\Core\Cache\Context\QueryArgsCacheContext
    
        arguments: ['@request_stack']
        tags:
          - { name: cache.context }
      cache_context.url.query_args.pagers:
    
        class: Drupal\Core\Cache\Context\PagersCacheContext
    
        tags:
          - { name: cache.context }
    
      # Complex cache contexts, that depend on the routing system.
      cache_context.route:
    
        class: Drupal\Core\Cache\Context\RouteCacheContext
    
        arguments: ['@current_route_match']
        tags:
          - { name: cache.context }
      cache_context.route.name:
    
        class: Drupal\Core\Cache\Context\RouteNameCacheContext
    
        arguments: ['@current_route_match']
        tags:
          - { name: cache.context }
      cache_context.route.menu_active_trails:
    
        class: Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext
    
        calls:
          - [setContainer, ['@service_container']]
        tags:
          - { name: cache.context }
    
      # Complex cache contexts, that may be calculated from a combination of
      # multiple aspects of the request context plus additional logic. Hence they
      # are their own roots.
      cache_context.user:
    
        class: Drupal\Core\Cache\Context\UserCacheContext
    
        arguments: ['@current_user']
        tags:
          - { name: cache.context}
    
        class: Drupal\Core\Cache\Context\AccountPermissionsCacheContext
    
        arguments: ['@current_user', '@user_permissions_hash_generator']
        tags:
          - { name: cache.context}
    
        class: Drupal\Core\Cache\Context\UserRolesCacheContext
    
        class: Drupal\Core\Cache\Context\IsSuperUserCacheContext
    
        arguments: ['@current_user']
        tags:
          - { name: cache.context}
      cache_context.languages:
    
        class: Drupal\Core\Cache\Context\LanguagesCacheContext
    
        arguments: ['@language_manager']
        tags:
          - { name: cache.context}
      cache_context.theme:
    
        class: Drupal\Core\Cache\Context\ThemeCacheContext
    
        class: Drupal\Core\Cache\Context\TimeZoneCacheContext
    
    
      cache_factory:
        class: Drupal\Core\Cache\CacheFactory
        arguments: ['@settings', '%cache_default_bin_backends%']
    
        calls:
          - [setContainer, ['@service_container']]
    
      Drupal\Core\Cache\CacheFactoryInterface: '@cache_factory'
    
        class: Drupal\Core\Cache\Context\CacheContextsManager
    
        arguments: ['@service_container', '%cache_contexts%' ]
    
      Drupal\Core\Cache\Context\CacheContextsManager: '@cache_contexts_manager'
    
      cache_tags.invalidator:
        parent: container.trait
        class: Drupal\Core\Cache\CacheTagsInvalidator
        calls:
          - [setContainer, ['@service_container']]
        tags:
          - { name: service_collector, call: addInvalidator, tag: cache_tags_invalidator }
    
      Drupal\Core\Cache\CacheTagsInvalidatorInterface: '@cache_tags.invalidator'
    
      cache_tags.invalidator.checksum:
        class: Drupal\Core\Cache\DatabaseCacheTagsChecksum
        arguments: ['@database']
        tags:
          - { name: cache_tags_invalidator}
    
          - { name: backend_overridable }
    
      Drupal\Core\Cache\CacheTagsChecksumInterface: '@cache_tags.invalidator.checksum'
    
      cache.backend.chainedfast:
        class: Drupal\Core\Cache\ChainedFastBackendFactory
        arguments: ['@settings']
        calls:
          - [setContainer, ['@service_container']]
    
      cache.backend.database:
        class: Drupal\Core\Cache\DatabaseBackendFactory
    
        arguments: ['@database', '@cache_tags.invalidator.checksum', '@settings']
    
        tags:
          - { name: backend_overridable }
    
      cache.backend.apcu:
        class: Drupal\Core\Cache\ApcuBackendFactory
    
        arguments: ['%app.root%', '%site.path%', '@cache_tags.invalidator.checksum']
    
      cache.backend.php:
        class: Drupal\Core\Cache\PhpBackendFactory
    
        arguments: ['@cache_tags.invalidator.checksum']
    
      cache.backend.memory:
        class: Drupal\Core\Cache\MemoryBackendFactory
      # A special cache bin that does not persist beyond the length of the request.
      cache.static:
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
          - { name: cache.bin, default_backend: cache.backend.memory }
    
      cache.bootstrap:
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
    
          - { name: cache.bin, default_backend: cache.backend.chainedfast }
    
      cache.config:
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
    
          - { name: cache.bin, default_backend: cache.backend.chainedfast }
    
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
          - { name: cache.bin }
    
      cache.entity:
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
          - { name: cache.bin }
    
      cache.menu:
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
          - { name: cache.bin }
    
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
          - { name: cache.bin }
    
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
          - { name: cache.bin }
    
      cache.discovery:
        class: Drupal\Core\Cache\CacheBackendInterface
        tags:
    
          - { name: cache.bin, default_backend: cache.backend.chainedfast }
    
      cache_router_rebuild_subscriber:
        class: Drupal\Core\EventSubscriber\CacheRouterRebuildSubscriber
        tags:
          - { name: event_subscriber }
    
      page_cache_request_policy:
        class: Drupal\Core\PageCache\DefaultRequestPolicy
    
        tags:
          - { name: service_collector, tag: page_cache_request_policy, call: addPolicy}
    
      Drupal\Core\PageCache\RequestPolicyInterface: '@page_cache_request_policy'
    
      page_cache_response_policy:
        class: Drupal\Core\PageCache\ChainResponsePolicy
        tags:
          - { name: service_collector, tag: page_cache_response_policy, call: addPolicy}
    
      Drupal\Core\PageCache\ResponsePolicyInterface: '@page_cache_response_policy'
    
      page_cache_kill_switch:
        class: Drupal\Core\PageCache\ResponsePolicy\KillSwitch
        tags:
          - { name: page_cache_response_policy }
    
          - { name: dynamic_page_cache_response_policy }
    
      Drupal\Core\PageCache\ResponsePolicy\KillSwitch: '@page_cache_kill_switch'
    
      page_cache_no_cache_routes:
        class: Drupal\Core\PageCache\ResponsePolicy\DenyNoCacheRoutes
        arguments: ['@current_route_match']
        public: false
        tags:
          - { name: page_cache_response_policy }
    
          - { name: dynamic_page_cache_response_policy }
    
      page_cache_no_server_error:
        class: Drupal\Core\PageCache\ResponsePolicy\NoServerError
        public: false
        tags:
          - { name: page_cache_response_policy }
    
          - { name: dynamic_page_cache_response_policy }
    
      config.manager:
        class: Drupal\Core\Config\ConfigManager
    
        arguments: ['@entity_type.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher', '@entity.repository', '@extension.path.resolver']
    
      Drupal\Core\Config\ConfigManagerInterface: '@config.manager'
    
      config.factory:
        class: Drupal\Core\Config\ConfigFactory
        tags:
    
          - { name: service_collector, tag: 'config.factory.override', call: addOverride }
    
        arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
    
      Drupal\Core\Config\ConfigFactoryInterface: '@config.factory'
    
      config.importer_subscriber:
        class: Drupal\Core\Config\Importer\FinalMissingContentSubscriber
        tags:
          - { name: event_subscriber }
    
      config.installer:
        class: Drupal\Core\Config\ConfigInstaller
    
        arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher', '%install_profile%', '@extension.path.resolver']
    
      Drupal\Core\Config\ConfigInstallerInterface: '@config.installer'
    
        class: Drupal\Core\Config\CachedStorage
        arguments: ['@config.storage.active', '@cache.config']
    
      Drupal\Core\Config\StorageCacheInterface: '@config.storage'
    
      config.storage.active:
        class: Drupal\Core\Config\DatabaseStorage
        arguments: ['@database', 'config']
    
        tags:
          - { name: backend_overridable }
    
      config.import_transformer:
        class: Drupal\Core\Config\ImportStorageTransformer
        arguments: ['@event_dispatcher', '@database', '@lock', '@lock.persistent']
    
      Drupal\Core\Config\ImportStorageTransformer: '@config.import_transformer'
    
        class: Drupal\Core\Config\ManagedStorage
        arguments: ['@config.storage.export.manager']
      config.storage.export.manager:
        class: Drupal\Core\Config\ExportStorageManager
        arguments: ['@config.storage', '@database', '@event_dispatcher', '@lock']
        public: false
    
      Drupal\Core\Config\StorageManagerInterface: '@config.storage.export.manager'
    
        factory: Drupal\Core\Config\FileStorageFactory::getSync
    
      config.storage.snapshot:
        class: Drupal\Core\Config\DatabaseStorage
        arguments: ['@database', config_snapshot]
    
        tags:
          - { name: backend_overridable }
    
        class: Drupal\Core\Config\ExtensionInstallStorage
    
        arguments: ['@config.storage', 'config/schema', '', true, '%install_profile%']
    
      config.typed:
        class: Drupal\Core\Config\TypedConfigManager
    
        arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery', '@module_handler', '@class_resolver']
    
        tags:
          - { name: plugin_manager_cache_clear }
    
        calls:
          - [setValidationConstraintManager, ['@validation.constraint']]
    
      Drupal\Core\Config\TypedConfigManagerInterface: '@config.typed'
    
      context.handler:
        class: Drupal\Core\Plugin\Context\ContextHandler
    
      Drupal\Core\Plugin\Context\ContextHandlerInterface: '@context.handler'
    
      context.repository:
        class: Drupal\Core\Plugin\Context\LazyContextRepository
        arguments: ['@service_container']
    
      Drupal\Core\Plugin\Context\ContextRepositoryInterface: '@context.repository'
    
      Drupal\Component\DependencyInjection\ReverseContainer:
        arguments: [ '@service_container' ]
    
        arguments: ['@module_handler', '@lock', '@queue', '@state', '@account_switcher', '@logger.channel.cron', '@plugin.manager.queue_worker', '@datetime.time', '%queue.config%']
    
      diff.formatter:
        class: Drupal\Core\Diff\DiffFormatter
        arguments: ['@config.factory']
    
      Drupal\Core\Diff\DiffFormatter: '@diff.formatter'
    
      database:
        class: Drupal\Core\Database\Connection
    
        factory: Drupal\Core\Database\Database::getConnection
    
      Drupal\Core\Database\Connection: '@database'
    
      database.replica:
        class: Drupal\Core\Database\Connection
        factory: Drupal\Core\Database\Database::getConnection
        arguments: [replica]
    
      database.replica_kill_switch:
        class: Drupal\Core\Database\ReplicaKillSwitch
        arguments: ['@settings', '@datetime.time', '@session']
        tags:
          - { name: event_subscriber }
    
      Drupal\Core\Database\ReplicaKillSwitch: '@database.replica_kill_switch'
    
      Drupal\Core\Database\EventSubscriber\StatementExecutionSubscriber:
        tags:
          - { name: event_subscriber }
    
      datetime.time:
        class: Drupal\Component\Datetime\Time
        arguments: ['@request_stack']
    
      Drupal\Component\Datetime\TimeInterface: '@datetime.time'
    
      file_system:
        class: Drupal\Core\File\FileSystem
        arguments: ['@stream_wrapper_manager', '@settings', '@logger.channel.file']
    
      Drupal\Core\File\FileSystemInterface: '@file_system'
    
      file_url_generator:
        class: Drupal\Core\File\FileUrlGenerator
        arguments: ['@stream_wrapper_manager', '@request_stack', '@module_handler']
    
      Drupal\Core\File\FileUrlGeneratorInterface: '@file_url_generator'
    
        arguments: ['@form_validator', '@form_submitter', '@form_cache', '@module_handler', '@event_dispatcher', '@request_stack', '@class_resolver', '@element_info', '@theme.manager', '@?csrf_token']
    
      Drupal\Core\Form\FormBuilderInterface: '@form_builder'
    
      form_validator:
        class: Drupal\Core\Form\FormValidator
    
        arguments: ['@request_stack', '@string_translation', '@csrf_token', '@logger.channel.form', '@form_error_handler']
    
      Drupal\Core\Form\FormValidatorInterface: '@form_validator'
    
      form_submitter:
        class: Drupal\Core\Form\FormSubmitter
        arguments: ['@request_stack', '@url_generator']
    
      Drupal\Core\Form\FormSubmitterInterface: '@form_submitter'
    
      form_error_handler:
        class: Drupal\Core\Form\FormErrorHandler
    
      Drupal\Core\Form\FormErrorHandlerInterface: '@form_error_handler'
    
        arguments: ['%app.root%', '@keyvalue.expirable', '@module_handler', '@current_user', '@csrf_token', '@logger.channel.form', '@request_stack', '@page_cache_request_policy']
    
      Drupal\Core\Form\FormCacheInterface: '@form_cache'
    
      keyvalue:
        class: Drupal\Core\KeyValueStore\KeyValueFactory
    
        arguments: ['@service_container', '%factory.keyvalue%']
    
      keyvalue.database:
        class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
    
        arguments: ['@serialization.phpserialize', '@database']
    
      keyvalue.expirable:
        class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
    
        arguments: ['@service_container', '%factory.keyvalue.expirable%']
    
      keyvalue.expirable.database:
        class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
    
        arguments: ['@serialization.phpserialize', '@database']
    
      logger.factory:
        class: Drupal\Core\Logger\LoggerChannelFactory
        parent: container.trait
        tags:
          - { name: service_collector, tag: logger, call: addLogger }
    
      Drupal\Core\Logger\LoggerChannelFactoryInterface: '@logger.factory'
    
        class: Drupal\Core\Logger\LoggerChannel
    
      logger.channel.default:
        parent: logger.channel_base
    
      logger.channel.file:
        class: Drupal\Core\Logger\LoggerChannel
    
      logger.channel.security:
        parent: logger.channel_base
        arguments: ['security']
    
      logger.channel.menu:
        parent: logger.channel_base
        arguments: ['menu']
      logger.channel.router:
        parent: logger.channel_base
        arguments: ['router']
    
      logger.log_message_parser:
        class: Drupal\Core\Logger\LogMessageParser
    
      Drupal\Core\Logger\LogMessageParserInterface: '@logger.log_message_parser'
    
    
      serialization.json:
        class: Drupal\Component\Serialization\Json
      serialization.phpserialize:
        class: Drupal\Component\Serialization\PhpSerialize
      serialization.yaml:
        class: Drupal\Component\Serialization\Yaml
    
    
      Drupal\Core\Site\Settings: '@settings'
    
      Drupal\Core\State\StateInterface: '@state'
    
      queue:
        class: Drupal\Core\Queue\QueueFactory
        arguments: ['@settings']
        calls:
          - [setContainer, ['@service_container']]
    
      Drupal\Core\Queue\QueueFactory: '@queue'
    
      queue.database:
        class: Drupal\Core\Queue\QueueDatabaseFactory
        arguments: ['@database']
    
      Drupal\Core\Queue\QueueDatabaseFactory: '@queue.database'
    
      path.current:
        class: Drupal\Core\Path\CurrentPathStack
        arguments: ['@request_stack']
    
      Drupal\Core\Path\CurrentPathStack: '@path.current'
    
      http_handler_stack:
        class: GuzzleHttp\HandlerStack
        public: false
        factory: GuzzleHttp\HandlerStack::create
        configurator: ['@http_handler_stack_configurator', configure]
    
      GuzzleHttp\HandlerStack: '@http_handler_stack'
    
      http_handler_stack_configurator:
        class: Drupal\Core\Http\HandlerStackConfigurator
        public: false
        arguments: ['@service_container']
    
        tags:
          - { name: service_id_collector, tag: http_client_middleware }
    
      Drupal\Core\Http\HandlerStackConfigurator: '@http_handler_stack_configurator'
    
        factory: ['@http_client_factory', 'fromOptions']
    
      GuzzleHttp\ClientInterface: '@http_client'
      Psr\Http\Client\ClientInterface: '@http_client'
    
      http_client_factory:
        class: Drupal\Core\Http\ClientFactory
        arguments: ['@http_handler_stack']
    
      Drupal\Core\Http\ClientFactory: '@http_client_factory'
    
      plugin.manager.link_relation_type:
        class: \Drupal\Core\Http\LinkRelationTypeManager
    
        arguments: ['%app.root%', '@module_handler', '@cache.discovery']
    
      theme.negotiator:
        class: Drupal\Core\Theme\ThemeNegotiator
    
        arguments: ['@access_check.theme', '@class_resolver']
    
          - { name: service_id_collector, tag: theme_negotiator }
    
      Drupal\Core\Theme\ThemeNegotiatorInterface: '@theme.negotiator'
    
      theme.negotiator.default:
        class: Drupal\Core\Theme\DefaultNegotiator
        arguments: ['@config.factory']
        tags:
          - { name: theme_negotiator, priority: -100 }
      theme.negotiator.ajax_base_page:
        class: Drupal\Core\Theme\AjaxBasePageNegotiator
    
        arguments: ['@csrf_token', '@config.factory', '@request_stack']
    
        tags:
          - { name: theme_negotiator, priority: 1000 }
    
      container.namespaces:
        class: ArrayObject
        arguments: [ '%container.namespaces%' ]
    
      container.trait:
        abstract: true
        calls:
          - [setContainer, ['@service_container']]
    
        arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
    
        class: Drupal\Core\Extension\ModuleHandler
    
        arguments: ['%app.root%', '%container.modules%', '@cache.bootstrap']
    
      Drupal\Core\Extension\ModuleHandlerInterface: '@module_handler'
    
      module_installer:
        class: Drupal\Core\Extension\ModuleInstaller
    
        tags:
          - { name: service_collector, tag: 'module_install.uninstall_validator', call: addUninstallValidator }
    
        arguments: ['%app.root%', '@module_handler', '@kernel', '@database', '@update.update_hook_registry', '@logger.channel.default']
    
      Drupal\Core\Extension\ModuleInstallerInterface: '@module_installer'
    
      extension.list.module:
        class: Drupal\Core\Extension\ModuleExtensionList
    
        arguments: ['%app.root%', 'module', '@cache.default', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.profile', '%install_profile%', '%container.modules%']
    
      Drupal\Core\Extension\ModuleExtensionList: '@extension.list.module'
    
      extension.list.profile:
        class: Drupal\Core\Extension\ProfileExtensionList
    
        arguments: ['%app.root%', 'profile', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
    
      Drupal\Core\Extension\ProfileExtensionList: '@extension.list.profile'
    
      extension.list.theme:
        class: Drupal\Core\Extension\ThemeExtensionList
    
        arguments: ['%app.root%', 'theme', '@cache.default', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.theme_engine', '%install_profile%']
    
      Drupal\Core\Extension\ThemeExtensionList: '@extension.list.theme'
    
      extension.list.theme_engine:
        class: Drupal\Core\Extension\ThemeEngineExtensionList
    
        arguments: ['%app.root%', 'theme_engine', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
    
      Drupal\Core\Extension\ThemeEngineExtensionList: '@extension.list.theme_engine'
    
      extension.path.resolver:
        class: Drupal\Core\Extension\ExtensionPathResolver
        arguments: ['@extension.list.module', '@extension.list.profile', '@extension.list.theme', '@extension.list.theme_engine']
    
      Drupal\Core\Extension\ExtensionPathResolver: '@extension.path.resolver'
    
      content_uninstall_validator:
        class: Drupal\Core\Entity\ContentUninstallValidator
        tags:
          - { name: module_install.uninstall_validator }
    
        arguments: ['@entity_type.manager', '@string_translation']
    
      required_module_uninstall_validator:
        class: Drupal\Core\Extension\RequiredModuleUninstallValidator
        tags:
          - { name: module_install.uninstall_validator }
    
        arguments: ['@string_translation', '@extension.list.module']
    
      module_required_by_themes_uninstall_validator:
        class: Drupal\Core\Extension\ModuleRequiredByThemesUninstallValidator
        tags:
          - { name: module_install.uninstall_validator }
        arguments: ['@string_translation', '@extension.list.module', '@extension.list.theme']
        lazy: true
    
      database_driver_uninstall_validator:
        class: Drupal\Core\Extension\DatabaseDriverUninstallValidator
        tags:
          - { name: module_install.uninstall_validator }
        arguments: ['@string_translation', '@extension.list.module', '@database']
        lazy: true
    
      theme_handler:
        class: Drupal\Core\Extension\ThemeHandler
    
        arguments: ['%app.root%', '@config.factory', '@extension.list.theme']
    
      Drupal\Core\Extension\ThemeHandlerInterface: '@theme_handler'
    
      theme_installer:
        class: Drupal\Core\Extension\ThemeInstaller
    
        arguments: ['@theme_handler', '@config.factory', '@config.installer', '@module_handler', '@config.manager', '@asset.css.collection_optimizer', '@router.builder', '@logger.channel.default', '@state', '@extension.list.module', '@theme.registry']
    
      Drupal\Core\Extension\ThemeInstallerInterface: '@theme_installer'
    
      entity.memory_cache:
        class: Drupal\Core\Cache\MemoryCache\MemoryCache
    
      Drupal\Core\Cache\MemoryCache\MemoryCacheInterface: '@entity.memory_cache'
    
      entity_type.manager:
        class: Drupal\Core\Entity\EntityTypeManager
    
        arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@string_translation', '@class_resolver', '@entity.last_installed_schema.repository']
    
        parent: container.trait
        tags:
          - { name: plugin_manager_cache_clear }
    
      Drupal\Core\Entity\EntityTypeManagerInterface: '@entity_type.manager'
    
      entity_type.repository:
        class: Drupal\Core\Entity\EntityTypeRepository
        arguments: ['@entity_type.manager']
    
      Drupal\Core\Entity\EntityTypeRepositoryInterface: '@entity_type.repository'
    
      entity_type.bundle.info:
        class: Drupal\Core\Entity\EntityTypeBundleInfo
        arguments: ['@entity_type.manager', '@language_manager', '@module_handler', '@typed_data_manager', '@cache.discovery']
    
      Drupal\Core\Entity\EntityTypeBundleInfoInterface: '@entity_type.bundle.info'
    
      entity.repository:
        class: Drupal\Core\Entity\EntityRepository
    
        arguments: ['@entity_type.manager', '@language_manager', '@context.repository']
    
      Drupal\Core\Entity\EntityRepositoryInterface: '@entity.repository'
    
      entity_display.repository:
        class: Drupal\Core\Entity\EntityDisplayRepository
        arguments: ['@entity_type.manager', '@module_handler', '@cache.discovery', '@language_manager']
    
      Drupal\Core\Entity\EntityDisplayRepositoryInterface: '@entity_display.repository'
    
      entity_field.manager:
        class: Drupal\Core\Entity\EntityFieldManager
    
        arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_display.repository', '@typed_data_manager', '@language_manager', '@keyvalue', '@module_handler', '@cache.discovery', '@entity.last_installed_schema.repository']
    
      Drupal\Core\Entity\EntityFieldManagerInterface: '@entity_field.manager'
    
      entity_type.listener:
        class: Drupal\Core\Entity\EntityTypeListener
        arguments: ['@entity_type.manager', '@entity_field.manager', '@event_dispatcher', '@entity.last_installed_schema.repository']
    
      Drupal\Core\Entity\EntityTypeListenerInterface: '@entity_type.listener'
    
      entity_bundle.listener:
        class: Drupal\Core\Entity\EntityBundleListener
        arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@module_handler']
    
      Drupal\Core\Entity\EntityBundleListenerInterface: '@entity_bundle.listener'
    
      entity_route_subscriber:
        class: Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
    
        arguments: ['@entity_type.manager']
    
      entity.definition_update_manager:
        class: Drupal\Core\Entity\EntityDefinitionUpdateManager
    
        arguments: ['@entity_type.manager', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_type.listener', '@field_storage_definition.listener']
    
      Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface: '@entity.definition_update_manager'
    
      entity.last_installed_schema.repository:
        class: Drupal\Core\Entity\EntityLastInstalledSchemaRepository
    
        arguments: ['@keyvalue', '@cache.discovery']
    
      Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface: '@entity.last_installed_schema.repository'
    
      entity_field.deleted_fields_repository:
        class: Drupal\Core\Field\DeletedFieldsRepository
        arguments: ['@state']
    
      Drupal\Core\Field\DeletedFieldsRepositoryInterface: '@entity_field.deleted_fields_repository'
    
      field_storage_definition.listener:
        class: Drupal\Core\Field\FieldStorageDefinitionListener
    
        arguments: ['@entity_type.manager', '@event_dispatcher', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_field.deleted_fields_repository']
    
      Drupal\Core\Field\FieldStorageDefinitionListenerInterface: '@field_storage_definition.listener'
    
      field_definition.listener:
        class: Drupal\Core\Field\FieldDefinitionListener
        arguments: ['@entity_type.manager', '@entity_field.manager', '@keyvalue', '@cache.discovery']
    
      Drupal\Core\Field\FieldDefinitionListenerInterface: '@field_definition.listener'
    
      entity.form_builder:
        class: Drupal\Core\Entity\EntityFormBuilder
    
        arguments: ['@entity_type.manager', '@form_builder']
    
      Drupal\Core\Entity\EntityFormBuilderInterface: '@entity.form_builder'
    
      entity.bundle_config_import_validator:
        class: Drupal\Core\Entity\Event\BundleConfigImportValidate
    
        arguments: ['@config.manager', '@entity_type.manager']
    
        tags:
          - { name: event_subscriber }
    
      entity.autocomplete_matcher:
        class: Drupal\Core\Entity\EntityAutocompleteMatcher
        arguments: ['@plugin.manager.entity_reference_selection']
    
      Drupal\Core\Entity\EntityAutocompleteMatcherInterface: '@entity.autocomplete_matcher'
    
      plugin_form.factory:
        class: Drupal\Core\Plugin\PluginFormFactory
        arguments: ['@class_resolver']
    
      Drupal\Core\Plugin\PluginFormFactoryInterface: '@plugin_form.factory'
    
      plugin.manager.entity_reference_selection:
        class: Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManager
        parent: default_plugin_manager
    
      Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface: '@plugin.manager.entity_reference_selection'
    
      plugin.manager.block:
        class: Drupal\Core\Block\BlockManager
        parent: default_plugin_manager
    
        arguments: ['@logger.channel.default']
    
      Drupal\Core\Block\BlockManagerInterface: '@plugin.manager.block'
    
      plugin.manager.field.field_type:
        class: Drupal\Core\Field\FieldTypePluginManager
    
        arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@typed_data_manager']
    
      Drupal\Core\Field\FieldTypePluginManagerInterface: '@plugin.manager.field.field_type'
    
      plugin.manager.field.widget:
        class: Drupal\Core\Field\WidgetPluginManager
    
        arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
    
      plugin.manager.field.formatter:
        class: Drupal\Core\Field\FormatterPluginManager
    
        arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
    
      plugin.manager.archiver:
        class: Drupal\Core\Archiver\ArchiverManager
    
      plugin.manager.action:
        class: Drupal\Core\Action\ActionManager
    
        arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
    
      plugin.manager.menu.link:
        class: Drupal\Core\Menu\MenuLinkManager
        arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
    
      Drupal\Core\Menu\MenuLinkManagerInterface: '@plugin.manager.menu.link'
    
      menu.link_tree:
        class: Drupal\Core\Menu\MenuLinkTree
    
        arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@controller_resolver']
    
      Drupal\Core\Menu\MenuLinkTreeInterface: '@menu.link_tree'
    
      menu.default_tree_manipulators:
        class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
    
        arguments: ['@access_manager', '@current_user', '@entity_type.manager', '@module_handler']
    
      Drupal\Core\Menu\DefaultMenuLinkTreeManipulators: '@menu.default_tree_manipulators'
    
      menu.active_trail:
        class: Drupal\Core\Menu\MenuActiveTrail
    
        arguments: ['@plugin.manager.menu.link', '@current_route_match', '@cache.menu', '@lock']
        tags:
          - { name: needs_destruction }
    
      Drupal\Core\Menu\MenuActiveTrailInterface: '@menu.active_trail'
    
      menu.parent_form_selector:
        class: Drupal\Core\Menu\MenuParentFormSelector
    
        arguments: ['@menu.link_tree', '@entity_type.manager', '@string_translation']
    
      Drupal\Core\Menu\MenuParentFormSelectorInterface: '@menu.parent_form_selector'
    
      plugin.manager.menu.local_action:
        class: Drupal\Core\Menu\LocalActionManager
    
        arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
    
      Drupal\Core\Menu\LocalActionManagerInterface: '@plugin.manager.menu.local_action'
    
      plugin.manager.menu.local_task:
        class: Drupal\Core\Menu\LocalTaskManager
    
        arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
    
      Drupal\Core\Menu\LocalTaskManagerInterface: '@plugin.manager.menu.local_task'
    
      plugin.manager.menu.contextual_link:
        class: Drupal\Core\Menu\ContextualLinkManager
    
        arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
    
      Drupal\Core\Menu\ContextualLinkManagerInterface: '@plugin.manager.menu.contextual_link'
    
      plugin.manager.display_variant:
        class: Drupal\Core\Display\VariantManager
        parent: default_plugin_manager
    
      plugin.manager.queue_worker:
        class: Drupal\Core\Queue\QueueWorkerManager
        parent: default_plugin_manager
    
      Drupal\Core\Queue\QueueWorkerManagerInterface: '@plugin.manager.queue_worker'
    
      plugin.cache_clearer:
        class: Drupal\Core\Plugin\CachedDiscoveryClearer
    
      Drupal\Core\Plugin\CachedDiscoveryClearerInterface: '@plugin.cache_clearer'
    
      paramconverter.menu_link:
        class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
        tags:
          - { name: paramconverter }
        arguments: ['@plugin.manager.menu.link']
    
      menu.tree_storage:
        class: Drupal\Core\Menu\MenuTreeStorage
    
        arguments: ['@database', '@cache.menu', '@cache_tags.invalidator', 'menu_tree']
    
        public: false  # Private to plugin.manager.menu.link and menu.link_tree
    
        tags:
          - { name: backend_overridable }
    
      Drupal\Core\Menu\MenuTreeStorageInterface: '@menu.tree_storage'
    
      menu_link.static.overrides:
        class: Drupal\Core\Menu\StaticMenuLinkOverrides
        arguments: ['@config.factory']
    
      Drupal\Core\Menu\StaticMenuLinkOverridesInterface: '@menu_link.static.overrides'
    
        class: Symfony\Component\HttpFoundation\RequestStack
    
      Symfony\Component\HttpFoundation\RequestStack: '@request_stack'
    
        class: Drupal\Core\Routing\CurrentRouteMatch
        arguments: ['@request_stack']
    
      Drupal\Core\Routing\RouteMatchInterface: '@current_route_match'
    
        class: Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher
    
      Symfony\Contracts\EventDispatcher\EventDispatcherInterface: '@event_dispatcher'
    
        class: Drupal\Core\Controller\ControllerResolver
    
        arguments: ['@psr7.http_message_factory', '@class_resolver']
    
      Drupal\Core\Controller\ControllerResolverInterface: '@controller_resolver'
      Symfony\Component\HttpKernel\Controller\ControllerResolverInterface: '@controller_resolver'
    
      class_resolver:
        class: Drupal\Core\DependencyInjection\ClassResolver
        calls:
          - [setContainer, ['@service_container']]
    
      Drupal\Core\DependencyInjection\ClassResolverInterface: '@class_resolver'
    
      title_resolver:
        class: Drupal\Core\Controller\TitleResolver
    
        arguments: ['@controller_resolver', '@string_translation', '@http_kernel.controller.argument_resolver']
    
      Drupal\Core\Controller\TitleResolverInterface: '@title_resolver'
    
        class: Drupal\Core\StackMiddleware\StackedHttpKernel
    
      Symfony\Component\HttpKernel\HttpKernelInterface: '@http_kernel'
    
        class: Symfony\Component\HttpKernel\HttpKernel
    
        arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack', '@http_kernel.controller.argument_resolver', true]
    
      http_kernel.controller.argument_resolver:
        class: Symfony\Component\HttpKernel\Controller\ArgumentResolver
    
        arguments: ['@http_kernel.controller.argument_metadata_factory', ['@argument_resolver.request_attribute', '@argument_resolver.request', '@argument_resolver.psr7_request', '@argument_resolver.route_match', '@argument_resolver.default']]
    
      Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface: '@http_kernel.controller.argument_resolver'
    
      http_kernel.controller.argument_metadata_factory:
        class: Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory
        public: false
    
      Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactoryInterface: '@http_kernel.controller.argument_metadata_factory'
    
      argument_resolver.request_attribute:
        class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
        public: false
      argument_resolver.request:
        class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
        public: false
      argument_resolver.psr7_request:
        class: Drupal\Core\Controller\ArgumentResolver\Psr7RequestValueResolver
        arguments: ['@psr7.http_message_factory']
        public: false
      argument_resolver.route_match:
        class: Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
        public: false
      argument_resolver.default:
        class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
        public: false
    
      http_middleware.negotiation:
        class: Drupal\Core\StackMiddleware\NegotiationMiddleware
        tags:
          - { name: http_middleware, priority: 400 }
    
      http_middleware.reverse_proxy:
        class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
        arguments: ['@settings']
        tags:
          - { name: http_middleware, priority: 300 }
      http_middleware.kernel_pre_handle:
        class: Drupal\Core\StackMiddleware\KernelPreHandle
        arguments: ['@kernel']
        tags:
          - { name: http_middleware, priority: 100 }
    
      http_middleware.session:
        class: Drupal\Core\StackMiddleware\Session
        tags:
          - { name: http_middleware, priority: 50 }
        calls:
          - [setContainer, ['@service_container']]
    
        class: Asm89\Stack\Cors
        arguments: ['%cors.config%']
        tags:
          - { name: http_middleware, priority: 250 }
    
      psr7.http_foundation_factory:
        class: Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory
    
      Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface: '@psr7.http_foundation_factory'
    
      psr17.server_request_factory:
    
      Psr\Http\Message\ServerRequestFactoryInterface: '@psr17.server_request_factory'
    
      Psr\Http\Message\StreamFactoryInterface: '@psr17.stream_factory'
    
      psr17.uploaded_file_factory:
    
      Psr\Http\Message\UploadedFileFactoryInterface: '@psr17.uploaded_file_factory'
    
      Psr\Http\Message\ResponseFactoryInterface: '@psr17.response_factory'
    
        class: Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory
        arguments: ['@psr17.server_request_factory', '@psr17.stream_factory', '@psr17.uploaded_file_factory', '@psr17.response_factory']
    
      Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface: '@psr7.http_message_factory'
    
      language_manager:
        class: Drupal\Core\Language\LanguageManager
    
      Drupal\Core\Language\LanguageManagerInterface: '@language_manager'
    
      language.current_language_context:
        class: Drupal\Core\Language\ContextProvider\CurrentLanguageContext
        arguments: ['@language_manager']
        tags:
          - { name: 'context_provider' }
    
      language.default:
        class: Drupal\Core\Language\LanguageDefault
        arguments: ['%language.default_values%']
    
      Drupal\Core\Language\LanguageDefault: '@language.default'
    
      string_translator.custom_strings:
        class: Drupal\Core\StringTranslation\Translator\CustomStrings
    
        tags:
          - { name: string_translator, priority: 30 }
      string_translation:
        class: Drupal\Core\StringTranslation\TranslationManager
    
        tags:
          - { name: service_collector, tag: string_translator, call: addTranslator }
    
      Drupal\Core\StringTranslation\TranslationInterface: '@string_translation'
    
        class: Drupal\Core\TypedData\TypedDataManager
    
        arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@class_resolver']
    
        calls:
          - [setValidationConstraintManager, ['@validation.constraint']]
    
        tags:
          - { name: plugin_manager_cache_clear }
    
      Drupal\Core\TypedData\TypedDataManagerInterface: '@typed_data_manager'
    
      validation.constraint:
        class: Drupal\Core\Validation\ConstraintManager
    
        tags:
          - { name: plugin_manager_cache_clear }
    
      lock:
        class: Drupal\Core\Lock\DatabaseLockBackend
    
        tags:
          - { name: backend_overridable }
    
      lock.persistent:
        class: Drupal\Core\Lock\PersistentDatabaseLockBackend
        arguments: ['@database']
    
        class: Drupal\Core\Routing\RequestContext
    
        calls:
          - [fromRequestStack, ['@request_stack']]
    
      Drupal\Core\Routing\RequestContext: '@router.request_context'
    
      router.admin_context:
        class: Drupal\Core\Routing\AdminContext
    
      Drupal\Core\Routing\AdminContext: '@router.admin_context'
    
      router.route_provider:
        class: Drupal\Core\Routing\RouteProvider
    
        arguments: ['@database', '@state', '@path.current', '@cache.data', '@path_processor_manager', '@cache_tags.invalidator', 'router', '@language_manager']
    
          - { name: backend_overridable }
    
      Drupal\Core\Routing\RouteProviderInterface: '@router.route_provider'
    
      router.route_provider.lazy_builder:
        class: Drupal\Core\Routing\RouteProviderLazyBuilder
        arguments: ['@router.route_provider', '@router.builder']
    
      router.route_preloader:
        class: Drupal\Core\Routing\RoutePreloader
    
        arguments: ['@router.route_provider', '@state', '@cache.bootstrap']
    
        tags:
          - { name: 'event_subscriber' }