core.services.yml 32.5 KB
Newer Older
1 2 3 4 5 6
services:
  cache_factory:
    class: Drupal\Core\Cache\CacheFactory
    arguments: ['@settings']
    calls:
      - [setContainer, ['@service_container']]
7 8 9 10 11
  cache_contexts:
    class: Drupal\Core\Cache\CacheContexts
    arguments: ['@service_container', '%cache_contexts%' ]
  cache_context.url:
    class: Drupal\Core\Cache\UrlCacheContext
12
    arguments: ['@request_stack']
13 14 15 16 17 18 19 20 21
    tags:
      - { name: cache.context}
  cache_context.language:
    class: Drupal\Core\Cache\LanguageCacheContext
    arguments: ['@language_manager']
    tags:
      - { name: cache.context}
  cache_context.theme:
    class: Drupal\Core\Cache\ThemeCacheContext
22
    arguments: ['@current_route_match', '@theme.negotiator']
23 24
    tags:
      - { name: cache.context}
25 26 27 28
  cache_context.timezone:
    class: Drupal\Core\Cache\TimeZoneCacheContext
    tags:
      - { name: cache.context}
29 30 31
  cache.backend.database:
    class: Drupal\Core\Cache\DatabaseBackendFactory
    arguments: ['@database']
32 33
  cache.backend.apcu:
    class: Drupal\Core\Cache\ApcuBackendFactory
34 35
  cache.backend.php:
    class: Drupal\Core\Cache\PhpBackendFactory
36 37 38 39
  cache.backend.memory:
    class: Drupal\Core\Cache\MemoryBackendFactory
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory
40 41 42 43 44 45 46
  cache.bootstrap:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [bootstrap]
47
  cache.default:
48 49 50 51 52
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
53
    arguments: [default]
54 55 56 57 58 59 60
  cache.entity:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [entity]
61
  cache.render:
62 63 64 65 66
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
67 68
    arguments: [render]
  cache.data:
69 70 71 72 73
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
74
    arguments: [data]
75 76 77 78 79 80 81
  cache.discovery:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [discovery]
82 83
  config.manager:
    class: Drupal\Core\Config\ConfigManager
84
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
85 86 87
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
88
      - { name: event_subscriber }
89
      - { name: service_collector, tag: 'config.factory.override', call: addOverride }
90
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
91 92
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
93
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
94 95 96 97 98 99 100 101 102
  config.storage:
    alias: config.storage.active
  config.storage.active:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', 'config']
  config.storage.file:
    class: Drupal\Core\Config\FileStorage
    factory_class: Drupal\Core\Config\FileStorageFactory
    factory_method: getActive
103 104 105 106 107 108 109 110
  config.storage.staging:
    class: Drupal\Core\Config\FileStorage
    factory_class: Drupal\Core\Config\FileStorageFactory
    factory_method: getStaging
  config.storage.snapshot:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', config_snapshot]
  config.storage.schema:
111 112
    class: Drupal\Core\Config\ExtensionInstallStorage
    arguments: ['@config.storage', 'config/schema']
113 114
  config.storage.installer:
    class: Drupal\Core\Config\InstallStorage
115 116
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
117
    arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery']
118 119 120
  context.handler:
    class: Drupal\Core\Plugin\Context\ContextHandler
    arguments: ['@typed_data_manager']
121 122
  cron:
    class: Drupal\Core\Cron
123
    arguments: ['@module_handler', '@lock', '@queue', '@state', '@current_user', '@session_manager']
124 125 126
  diff.formatter:
    class: Drupal\Core\Diff\DiffFormatter
    arguments: ['@config.factory']
127 128 129 130 131
  database:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [default]
132 133
  form_builder:
    class: Drupal\Core\Form\FormBuilder
134
    arguments: ['@form_validator', '@form_submitter', '@module_handler', '@keyvalue.expirable', '@event_dispatcher', '@request_stack', '@class_resolver', '@?csrf_token', '@?http_kernel']
135 136 137
  form_validator:
    class: Drupal\Core\Form\FormValidator
    arguments: ['@request_stack', '@string_translation', '@csrf_token']
138 139 140
  form_submitter:
    class: Drupal\Core\Form\FormSubmitter
    arguments: ['@request_stack', '@url_generator']
141 142
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
143
    arguments: ['@service_container', '@settings']
144 145
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
146
    arguments: ['@serialization.phpserialize', '@database']
147 148
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
149
    arguments: ['@service_container', '@settings']
150 151
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
152
    arguments: ['@serialization.phpserialize', '@database']
153 154
    tags:
      - { name: needs_destruction }
155 156 157 158 159 160 161 162 163 164 165 166
  logger.factory:
    class: Drupal\Core\Logger\LoggerChannelFactory
    parent: container.trait
    tags:
      - { name: service_collector, tag: logger, call: addLogger }
  logger.channel.default:
    class: Drupal\Core\Logger\LoggerChannel
    factory_method: get
    factory_service: logger.factory
    arguments: ['system']
  logger.log_message_parser:
    class: Drupal\Core\Logger\LogMessageParser
167 168 169 170 171 172 173 174

  serialization.json:
    class: Drupal\Component\Serialization\Json
  serialization.phpserialize:
    class: Drupal\Component\Serialization\PhpSerialize
  serialization.yaml:
    class: Drupal\Component\Serialization\Yaml

175
  settings:
176 177
    class: Drupal\Core\Site\Settings
    factory_class: Drupal\Core\Site\Settings
178
    factory_method: getInstance
179
  state:
180
    class: Drupal\Core\State\State
181
    arguments: ['@keyvalue']
182 183 184 185 186 187 188 189 190 191 192 193
  queue:
    class: Drupal\Core\Queue\QueueFactory
    arguments: ['@settings']
    calls:
      - [setContainer, ['@service_container']]
  queue.database:
    class: Drupal\Core\Queue\QueueDatabaseFactory
    arguments: ['@database']
  path.alias_whitelist:
    class: Drupal\Core\Path\AliasWhitelist
    tags:
      - { name: needs_destruction }
194
    arguments: [path_alias_whitelist, '@cache.default', '@lock', '@state', '@path.alias_storage']
195 196
  path.alias_manager:
    class: Drupal\Core\Path\AliasManager
197
    arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
198
  http_client:
199
    class: Drupal\Core\Http\Client
200 201
    tags:
      - { name: service_collector, tag: http_client_subscriber, call: attach }
202 203
  theme.negotiator:
    class: Drupal\Core\Theme\ThemeNegotiator
204
    arguments: ['@access_check.theme']
205 206
    tags:
      - { name: service_collector, tag: theme_negotiator, call: addNegotiator }
207 208 209 210
  theme.negotiator.request_subscriber:
    class: Drupal\Core\EventSubscriber\ThemeNegotiatorRequestSubscriber
    tags:
      - { name: event_subscriber }
211 212 213 214 215 216 217
  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
218
    arguments: ['@csrf_token', '@config.factory', '@request_stack']
219 220
    tags:
      - { name: theme_negotiator, priority: 1000 }
221 222 223
  container.namespaces:
    class: ArrayObject
    arguments: [ '%container.namespaces%' ]
224 225 226 227
  container.trait:
    abstract: true
    calls:
      - [setContainer, ['@service_container']]
228 229
  default_plugin_manager:
    abstract: true
230
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
231
  module_handler:
232 233
    class: Drupal\Core\Extension\ModuleHandler
    arguments: ['%container.modules%', '@cache.bootstrap']
234 235
  theme_handler:
    class: Drupal\Core\Extension\ThemeHandler
236
    arguments: ['@config.factory', '@module_handler', '@state', '@info_parser', '@config.installer', '@router.builder']
237
  entity.manager:
238
    class: Drupal\Core\Entity\EntityManager
239
    arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@language_manager', '@string_translation', '@class_resolver', '@typed_data_manager']
240
    parent: container.trait
241 242
    tags:
      - { name: plugin_manager_cache_clear }
243 244 245
  entity.form_builder:
    class: Drupal\Core\Entity\EntityFormBuilder
    arguments: ['@entity.manager', '@form_builder']
246 247
  plugin.manager.field.field_type:
    class: Drupal\Core\Field\FieldTypePluginManager
248
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
249 250
  plugin.manager.field.widget:
    class: Drupal\Core\Field\WidgetPluginManager
251
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
252 253
  plugin.manager.field.formatter:
    class: Drupal\Core\Field\FormatterPluginManager
254
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
255 256
  plugin.manager.archiver:
    class: Drupal\Core\Archiver\ArchiverManager
257
    parent: default_plugin_manager
258 259
  plugin.manager.action:
    class: Drupal\Core\Action\ActionManager
260
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
261 262
  plugin.manager.menu.local_action:
    class: Drupal\Core\Menu\LocalActionManager
263
    arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
264 265
  plugin.manager.menu.local_task:
    class: Drupal\Core\Menu\LocalTaskManager
266
    arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@router.builder', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
267 268
  plugin.manager.menu.contextual_link:
    class: Drupal\Core\Menu\ContextualLinkManager
269
    arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
270 271 272
  plugin.manager.display_variant:
    class: Drupal\Core\Display\VariantManager
    parent: default_plugin_manager
273 274
  plugin.cache_clearer:
    class: Drupal\Core\Plugin\CachedDiscoveryClearer
275 276
  request:
    class: Symfony\Component\HttpFoundation\Request
277
    synthetic: true
278
    synchronized: true
279 280
  request_stack:
    class: Symfony\Component\HttpFoundation\RequestStack
281 282
    tags:
      - { name: persist }
283 284 285
  current_route_match:
     class: Drupal\Core\Routing\CurrentRouteMatch
     arguments: ['@request_stack']
286 287 288 289
  event_dispatcher:
    class: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
    arguments: ['@service_container']
  controller_resolver:
290
    class: Drupal\Core\Controller\ControllerResolver
291 292 293 294 295
    arguments: ['@class_resolver', '@logger.channel.default']
  class_resolver:
    class: Drupal\Core\DependencyInjection\ClassResolver
    calls:
      - [setContainer, ['@service_container']]
296 297 298
  title_resolver:
    class: Drupal\Core\Controller\TitleResolver
    arguments: ['@controller_resolver', '@string_translation']
299 300
  http_kernel:
    class: Drupal\Core\HttpKernel
301 302
    arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
    parent: container.trait
303 304
  language_manager:
    class: Drupal\Core\Language\LanguageManager
305 306 307 308
    arguments: ['@language.default']
  language.default:
    class: Drupal\Core\Language\LanguageDefault
    arguments: ['%language.default_values%']
309 310
  string_translator.custom_strings:
    class: Drupal\Core\StringTranslation\Translator\CustomStrings
311
    arguments: ['@settings']
312 313 314 315
    tags:
      - { name: string_translator, priority: 30 }
  string_translation:
    class: Drupal\Core\StringTranslation\TranslationManager
316 317 318
    arguments: ['@language_manager']
    calls:
      - [initLanguageManager]
319 320
    tags:
      - { name: service_collector, tag: string_translator, call: addTranslator }
321
  database.replica:
322 323 324
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
325
    arguments: [replica]
326
  typed_data_manager:
327
    class: Drupal\Core\TypedData\TypedDataManager
328
    parent: default_plugin_manager
329 330
    calls:
      - [setValidationConstraintManager, ['@validation.constraint']]
331 332
    tags:
      - { name: plugin_manager_cache_clear }
333 334
  validation.constraint:
    class: Drupal\Core\Validation\ConstraintManager
335
    parent: default_plugin_manager
336 337
  lock:
    class: Drupal\Core\Lock\DatabaseLockBackend
338
    arguments: ['@database']
339 340
  router.request_context:
    class: Symfony\Component\Routing\RequestContext
341 342
    tags:
      - { name: persist }
343 344
  router.admin_context:
    class: Drupal\Core\Routing\AdminContext
345
    arguments: ['@request_stack']
346 347
  router.route_provider:
    class: Drupal\Core\Routing\RouteProvider
348
    arguments: ['@database', '@router.builder', '@state']
349 350
    tags:
      - { name: event_subscriber }
351 352 353 354 355
  router.route_preloader:
    class: Drupal\Core\Routing\RoutePreloader
    arguments: ['@router.route_provider', '@state', '@content_negotiation']
    tags:
      - { name: 'event_subscriber' }
356 357 358 359 360 361 362
  router.matcher.final_matcher:
    class: Drupal\Core\Routing\UrlMatcher
  router.matcher:
    class: Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher
    arguments: ['@router.route_provider']
    calls:
      - [setFinalMatcher, ['@router.matcher.final_matcher']]
363 364
    tags:
      - { name: service_collector, tag: route_filter, call: addRouteFilter }
365
  url_generator:
366
    class: Drupal\Core\Routing\UrlGenerator
367
    arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@config.factory', '@settings', '@logger.channel.default']
368 369
    calls:
      - [setRequest, ['@?request']]
370
      - [setContext, ['@?router.request_context']]
371 372
  link_generator:
    class: Drupal\Core\Utility\LinkGenerator
373
    arguments: ['@url_generator', '@module_handler']
374 375
  router.dynamic:
    class: Symfony\Cmf\Component\Routing\DynamicRouter
376
    arguments: ['@router.request_context', '@router.matcher', '@url_generator']
377 378
    tags:
      - { name: service_collector, tag: route_enhancer, call: addRouteEnhancer }
379 380 381 382 383
  router:
    class: Symfony\Cmf\Component\Routing\ChainRouter
    calls:
      - [setContext, ['@router.request_context']]
      - [add, ['@router.dynamic']]
384 385 386 387 388
  router.path_roots_subscriber:
    class: Drupal\Core\EventSubscriber\PathRootsSubscriber
    arguments: ['@state']
    tags:
      - { name: event_subscriber }
389 390
  entity.query:
    class: Drupal\Core\Entity\Query\QueryFactory
391
    arguments: ['@entity.manager']
392 393 394 395
    calls:
      - [setContainer, ['@service_container']]
  entity.query.config:
    class: Drupal\Core\Config\Entity\Query\QueryFactory
396
    arguments: ['@config.storage', '@config.factory']
397 398 399
  entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\QueryFactory
    arguments: ['@database']
400 401 402
  entity.query.keyvalue:
    class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
    arguments: ['@keyvalue']
403 404
  router.dumper:
    class: Drupal\Core\Routing\MatcherDumper
405
    arguments: ['@database', '@state']
406 407
  router.builder:
    class: Drupal\Core\Routing\RouteBuilder
408 409 410
    arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@state']
  router.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\RouterRebuildSubscriber
411
    arguments: ['@router.builder', '@lock']
412 413
    tags:
      - { name: event_subscriber }
414 415
  path.alias_storage:
    class: Drupal\Core\Path\AliasStorage
416
    arguments: ['@database', '@module_handler']
417 418 419 420
  path.matcher:
    class: Drupal\Core\Path\PathMatcher
    arguments: ['@config.factory']

421 422 423 424 425 426 427 428 429
# The argument to the hashing service defined in services.yml, to the
# constructor of PhpassHashedPassword is the log2 number of iterations for
# password stretching.
# @todo increase by 1 every Drupal version in order to counteract increases in
# the speed and power of computers available to crack the hashes. The current
# password hashing method was introduced in Drupal 7 with a log2 count of 15.
  password:
    class: Drupal\Core\Password\PhpassHashedPassword
    arguments: [16]
430 431 432 433 434 435 436
  accept_header_matcher:
    class: Drupal\Core\Routing\AcceptHeaderMatcher
    arguments: ['@content_negotiation']
    tags:
      - { name: route_filter }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
437 438 439 440
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
441 442
    tags:
      - { name: service_collector, tag: paramconverter, call: addConverter }
443 444 445 446 447
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
448 449 450 451
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
452
    arguments: ['@entity.manager']
453 454 455 456 457 458
  paramconverter.configentity_admin:
    class: Drupal\Core\ParamConverter\AdminPathConfigEntityConverter
    tags:
      # Use a higher priority than EntityConverter, see the class for details.
      - { name: paramconverter, priority: 5 }
    arguments: ['@entity.manager', '@config.factory', '@router.admin_context']
459 460 461 462 463
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
464 465 466
  resolver_manager.entity:
    class: Drupal\Core\Entity\EntityResolverManager
    arguments: ['@entity.manager', '@controller_resolver', '@class_resolver']
467 468 469 470
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
471
    arguments: ['@resolver_manager.entity']
472 473 474 475 476
  reverse_proxy_subscriber:
    class: Drupal\Core\EventSubscriber\ReverseProxySubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@settings']
477 478 479 480
  ajax_response_subscriber:
    class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
    tags:
      - { name: event_subscriber }
481 482 483 484 485 486
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
487 488 489 490
  route_enhancer.authentication:
    class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
    tags:
      - { name: route_enhancer, priority: 1000 }
491
    arguments: ['@authentication', '@current_user']
492 493
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
494
    arguments: ['@controller_resolver', '@entity.manager', '@form_builder']
495
    tags:
496
      - { name: route_enhancer, priority: 20 }
497 498 499 500 501 502 503
  route_content_controller_subscriber:
    class: Drupal\Core\EventSubscriber\ContentControllerSubscriber
    arguments: ['@content_negotiation']
    tags:
      - { name: event_subscriber }
  route_content_form_controller_subscriber:
    class: Drupal\Core\EventSubscriber\ContentFormControllerSubscriber
504
    arguments: ['@class_resolver', '@controller_resolver', '@form_builder']
505
    parent: container.trait
506
    tags:
507
      - { name: event_subscriber }
508 509 510 511
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
512 513 514 515
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
516 517
  controller.page:
    class: Drupal\Core\Controller\HtmlPageController
518
    arguments: ['@controller_resolver', '@title_resolver', '@url_generator']
519 520
  controller.ajax:
    class: Drupal\Core\Controller\AjaxController
521
    arguments: ['@controller_resolver', '@ajax_response_renderer']
522 523
  controller.entityform:
    class: Drupal\Core\Entity\HtmlEntityFormController
524
    arguments: ['@class_resolver', '@controller_resolver', '@service_container', '@entity.manager']
525 526
  controller.dialog:
    class: Drupal\Core\Controller\DialogController
527
    arguments: ['@controller_resolver', '@title_resolver']
528 529
  ajax_response_renderer:
    class: Drupal\Core\Ajax\AjaxResponseRenderer
530 531 532 533
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
534
    arguments: ['@router', '@router.request_context', NULL, '@request_stack']
535 536 537 538 539 540
  content_negotiation:
    class: Drupal\Core\ContentNegotiation
  view_subscriber:
    class: Drupal\Core\EventSubscriber\ViewSubscriber
    tags:
      - { name: event_subscriber }
541
    arguments: ['@content_negotiation', '@title_resolver', '@ajax_response_renderer']
542 543 544 545
  html_view_subscriber:
    class: Drupal\Core\EventSubscriber\HtmlViewSubscriber
    tags:
      - { name: event_subscriber }
546 547 548 549
    arguments: ['@html_fragment_renderer', '@html_page_renderer']
  html_fragment_renderer:
    class: Drupal\Core\Page\DefaultHtmlFragmentRenderer
    arguments: ['@language_manager']
550 551
  html_page_renderer:
    class: Drupal\Core\Page\DefaultHtmlPageRenderer
552 553 554 555 556
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
557
    arguments: ['@private_key']
558 559
  access_arguments_resolver:
    class: Drupal\Core\Access\AccessArgumentsResolver
560 561
  access_manager:
    class: Drupal\Core\Access\AccessManager
562
    arguments: ['@router.route_provider', '@url_generator', '@paramconverter_manager', '@access_arguments_resolver']
563 564
    calls:
      - [setContainer, ['@service_container']]
565
      - [setRequest, ['@?request']]
566 567
  access_subscriber:
    class: Drupal\Core\EventSubscriber\AccessSubscriber
568 569 570 571 572 573 574
    arguments: ['@access_manager', '@current_user']
    calls:
      - [setCurrentUser, ['@?current_user']]
    tags:
      - { name: event_subscriber }
  access_route_subscriber:
    class: Drupal\Core\EventSubscriber\AccessRouteSubscriber
575 576 577 578 579 580
    tags:
      - { name: event_subscriber }
    arguments: ['@access_manager']
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
581
      - { name: access_check, applies_to: _access }
582 583 584
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
585
      - { name: access_check, applies_to: _entity_access }
586 587
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
588
    arguments: ['@entity.manager']
589
    tags:
590
      - { name: access_check, applies_to: _entity_create_access }
591 592 593
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
    tags:
594
      - { name: access_check, applies_to: _access_theme }
595 596
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
597
    arguments: ['@controller_resolver', '@access_arguments_resolver']
598
    tags:
599
      - { name: access_check, applies_to: _custom_access }
600 601 602
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
603
      - { name: access_check, applies_to: _csrf_token }
604
    arguments: ['@csrf_token']
605 606
  maintenance_mode_subscriber:
    class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
607
    arguments: ['@state', '@config.factory', '@string_translation', '@url_generator', '@current_user']
608 609 610 611 612 613
    tags:
      - { name: event_subscriber }
  path_subscriber:
    class: Drupal\Core\EventSubscriber\PathSubscriber
    tags:
      - { name: event_subscriber }
614
    arguments: ['@path.alias_manager', '@path_processor_manager']
615 616 617 618
  finish_response_subscriber:
    class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
    tags:
      - { name: event_subscriber }
619
    arguments: ['@language_manager', '@config.factory']
620
    scope: request
621 622 623 624 625 626
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@url_generator']
    tags:
      - { name: event_subscriber }
    scope: request
627 628 629 630 631
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
632 633 634 635 636 637 638 639
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
640
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
641
  exception_controller:
642
    class: Drupal\Core\Controller\ExceptionController
643
    arguments: ['@content_negotiation', '@title_resolver', '@html_page_renderer', '@html_fragment_renderer', '@string_translation', '@url_generator']
644 645 646
    calls:
      - [setContainer, ['@service_container']]
  exception_listener:
647
    class: Drupal\Core\EventSubscriber\ExceptionListener
648 649 650
    tags:
      - { name: event_subscriber }
    arguments: [['@exception_controller', execute]]
651 652
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
653 654
    tags:
      - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
655 656
  path_processor_manager:
    class: Drupal\Core\PathProcessor\PathProcessorManager
657 658 659
    tags:
      - { name: service_collector, tag: path_processor_inbound, call: addInbound }
      - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
660 661 662 663 664 665 666 667
  path_processor_decode:
    class: Drupal\Core\PathProcessor\PathProcessorDecode
    tags:
      - { name: path_processor_inbound, priority: 1000 }
  path_processor_front:
    class: Drupal\Core\PathProcessor\PathProcessorFront
    tags:
      - { name: path_processor_inbound, priority: 200 }
668
      - { name: path_processor_outbound, priority: 200 }
669 670 671 672 673
    arguments: ['@config.factory']
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
674
      - { name: path_processor_outbound, priority: 300 }
675
    arguments: ['@path.alias_manager']
676
  route_processor_csrf:
677 678 679 680
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
681 682 683 684
  transliteration:
    class: Drupal\Core\Transliteration\PHPTransliteration
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
685
    arguments: ['@database', '@request_stack']
686 687
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
688
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory']
689 690
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
691
    parent: default_plugin_manager
692 693 694 695 696 697 698 699 700 701 702
  kernel_destruct_subscriber:
    class: Drupal\Core\EventSubscriber\KernelDestructionSubscriber
    tags:
      - { name: event_subscriber }
    calls:
      - [setContainer, ['@service_container']]
  ajax.subscriber:
    class: Drupal\Core\Ajax\AjaxSubscriber
    tags:
      - { name: event_subscriber }
  image.toolkit.manager:
703
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
704
    arguments: ['@container.namespaces', '@cache.discovery', '@config.factory', '@module_handler']
705 706
  image.factory:
    class: Drupal\Core\Image\ImageFactory
707
    arguments: ['@image.toolkit.manager']
708 709
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
710
    arguments: ['@module_handler']
711 712
    tags:
      - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
713 714
  token:
    class: Drupal\Core\Utility\Token
715
    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
716
  batch.storage:
717
    class: Drupal\Core\Batch\BatchStorage
718
    arguments: ['@database']
719 720
  replica_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
721 722
    tags:
      - {name: event_subscriber}
723 724 725
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
726 727
  date:
    class: Drupal\Core\Datetime\Date
728
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782
  feed.bridge.reader:
    class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
    calls:
      - [setContainer, ['@service_container']]
    arguments: ['feed.reader.']
  feed.bridge.writer:
    class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
    calls:
      - [setContainer, ['@service_container']]
    arguments: ['feed.writer.']
# Zend Feed reader plugins
  feed.reader.dublincoreentry:
    class: Zend\Feed\Reader\Extension\DublinCore\Entry
  feed.reader.dublincorefeed:
    class: Zend\Feed\Reader\Extension\DublinCore\Feed
  feed.reader.contententry:
    class: Zend\Feed\Reader\Extension\Content\Entry
  feed.reader.atomentry:
    class: Zend\Feed\Reader\Extension\Atom\Entry
  feed.reader.atomfeed:
    class: Zend\Feed\Reader\Extension\Atom\Feed
  feed.reader.slashentry:
    class: Zend\Feed\Reader\Extension\Slash\Entry
  feed.reader.wellformedwebentry:
    class: Zend\Feed\Reader\Extension\WellFormedWeb\Entry
  feed.reader.threadentry:
    class: Zend\Feed\Reader\Extension\Thread\Entry
  feed.reader.podcastentry:
    class: Zend\Feed\Reader\Extension\Podcast\Entry
  feed.reader.podcastfeed:
    class: Zend\Feed\Reader\Extension\Podcast\Feed
# Zend Feed writer plugins
  feed.writer.atomrendererfeed:
    class: Zend\Feed\Writer\Extension\Atom\Renderer\Feed
  feed.writer.contentrendererentry:
    class: Zend\Feed\Writer\Extension\Content\Renderer\Entry
  feed.writer.dublincorerendererentry:
    class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Entry
  feed.writer.dublincorerendererfeed:
    class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
  feed.writer.itunesentry:
    class: Zend\Feed\Writer\Extension\ITunes\Entry
  feed.writer.itunesfeed:
    class: Zend\Feed\Writer\Extension\ITunes\Feed
  feed.writer.itunesrendererentry:
    class: Zend\Feed\Writer\Extension\ITunes\Renderer\Entry
  feed.writer.itunesrendererfeed:
    class: Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
  feed.writer.slashrendererentry:
    class: Zend\Feed\Writer\Extension\Slash\Renderer\Entry
  feed.writer.threadingrendererentry:
    class: Zend\Feed\Writer\Extension\Threading\Renderer\Entry
  feed.writer.wellformedwebrendererentry:
    class: Zend\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry
783 784
  theme.registry:
    class: Drupal\Core\Theme\Registry
785
    arguments: ['@cache.default', '@lock', '@module_handler']
786 787
    tags:
      - { name: needs_destruction }
788 789 790 791 792 793 794
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@authentication']
795
  current_user:
796
    class: Drupal\Core\Session\AccountProxy
797
    arguments: ['@authentication', '@request']
798 799
  session_manager:
    class: Drupal\Core\Session\SessionManager
800
    arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@settings']
801 802
    tags:
      - { name: persist }
803 804 805
  session_manager.metadata_bag:
    class: Drupal\Core\Session\MetadataBag
    arguments: ['@settings']
806 807
  asset.css.collection_renderer:
    class: Drupal\Core\Asset\CssCollectionRenderer
808
    arguments: [ '@state' ]
809 810 811 812 813 814 815 816 817 818 819
  asset.css.collection_optimizer:
    class: Drupal\Core\Asset\CssCollectionOptimizer
    arguments: [ '@asset.css.collection_grouper', '@asset.css.optimizer', '@asset.css.dumper', '@state' ]
  asset.css.optimizer:
    class: Drupal\Core\Asset\CssOptimizer
  asset.css.collection_grouper:
    class: Drupal\Core\Asset\CssCollectionGrouper
  asset.css.dumper:
    class: Drupal\Core\Asset\AssetDumper
  asset.js.collection_renderer:
    class: Drupal\Core\Asset\JsCollectionRenderer
820
    arguments: [ '@state' ]
821 822 823 824 825 826 827 828 829
  asset.js.collection_optimizer:
    class: Drupal\Core\Asset\JsCollectionOptimizer
    arguments: [ '@asset.js.collection_grouper', '@asset.js.optimizer', '@asset.js.dumper', '@state' ]
  asset.js.optimizer:
    class: Drupal\Core\Asset\JsOptimizer
  asset.js.collection_grouper:
    class: Drupal\Core\Asset\JsCollectionGrouper
  asset.js.dumper:
    class: Drupal\Core\Asset\AssetDumper
830 831
  library.discovery:
    class: Drupal\Core\Asset\LibraryDiscovery
832 833 834 835 836 837 838 839 840
    arguments: ['@library.discovery.collector']
  library.discovery.collector:
    class: Drupal\Core\Asset\LibraryDiscoveryCollector
    arguments: ['@cache.discovery', '@lock', '@library.discovery.parser']
    tags:
      - { name: needs_destruction }
  library.discovery.parser:
    class: Drupal\Core\Asset\LibraryDiscoveryParser
    arguments: ['@module_handler']
841 842
  info_parser:
    class: Drupal\Core\Extension\InfoParser
843 844 845
  element_info:
    class: Drupal\Core\Render\ElementInfo
    arguments: ['@module_handler']
846 847 848 849 850 851 852 853 854
  file.mime_type.guesser:
    class: Drupal\Core\File\MimeType\MimeTypeGuesser
    tags:
      - { name: service_collector, tag: mime_type_guesser, call: addGuesser }
  file.mime_type.guesser.extension:
    class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
    arguments: ['@module_handler']
    tags:
      - { name: mime_type_guesser }