core.services.yml 31.3 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: ['@request_stack', '@theme.negotiator']
23 24
    tags:
      - { name: cache.context}
25 26 27
  cache.backend.database:
    class: Drupal\Core\Cache\DatabaseBackendFactory
    arguments: ['@database']
28 29
  cache.backend.apcu:
    class: Drupal\Core\Cache\ApcuBackendFactory
30 31
  cache.backend.php:
    class: Drupal\Core\Cache\PhpBackendFactory
32 33 34 35
  cache.backend.memory:
    class: Drupal\Core\Cache\MemoryBackendFactory
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory
36 37 38 39 40 41 42
  cache.bootstrap:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [bootstrap]
43
  cache.default:
44 45 46 47 48
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
49
    arguments: [default]
50 51 52 53 54 55 56
  cache.entity:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [entity]
57
  cache.render:
58 59 60 61 62
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
63 64
    arguments: [render]
  cache.data:
65 66 67 68 69
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
70
    arguments: [data]
71 72 73 74 75 76 77
  cache.discovery:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [discovery]
78 79
  config.manager:
    class: Drupal\Core\Config\ConfigManager
80
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
81 82 83
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
84
      - { name: event_subscriber }
85
      - { name: service_collector, tag: 'config.factory.override', call: addOverride }
86
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
87 88
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
89
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
90 91 92 93 94 95 96 97 98
  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
99 100 101 102 103 104 105 106
  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:
107 108
    class: Drupal\Core\Config\ExtensionInstallStorage
    arguments: ['@config.storage', 'config/schema']
109 110
  config.storage.installer:
    class: Drupal\Core\Config\InstallStorage
111 112
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
113
    arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery']
114 115
  cron:
    class: Drupal\Core\Cron
116
    arguments: ['@module_handler', '@lock', '@queue', '@state', '@current_user', '@session_manager']
117 118 119
  diff.formatter:
    class: Drupal\Core\Diff\DiffFormatter
    arguments: ['@config.factory']
120 121 122 123 124
  database:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [default]
125 126
  form_builder:
    class: Drupal\Core\Form\FormBuilder
127
    arguments: ['@form_validator', '@form_submitter', '@module_handler', '@keyvalue.expirable', '@event_dispatcher', '@request_stack', '@class_resolver', '@?csrf_token', '@?http_kernel']
128 129 130
  form_validator:
    class: Drupal\Core\Form\FormValidator
    arguments: ['@request_stack', '@string_translation', '@csrf_token']
131 132 133
  form_submitter:
    class: Drupal\Core\Form\FormSubmitter
    arguments: ['@request_stack', '@url_generator']
134 135
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
136
    arguments: ['@service_container', '@settings']
137 138
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
139
    arguments: ['@serialization.phpserialize', '@database']
140 141
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
142
    arguments: ['@service_container', '@settings']
143 144
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
145
    arguments: ['@serialization.phpserialize', '@database']
146 147
    tags:
      - { name: needs_destruction }
148 149 150 151 152 153 154 155 156 157 158 159
  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
160 161 162 163 164 165 166 167

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

168
  settings:
169 170
    class: Drupal\Core\Site\Settings
    factory_class: Drupal\Core\Site\Settings
171
    factory_method: getInstance
172
  state:
173
    class: Drupal\Core\State\State
174
    arguments: ['@keyvalue']
175 176 177 178 179 180 181 182 183 184 185 186
  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 }
187
    arguments: [path_alias_whitelist, '@cache.default', '@lock', '@state', '@path.alias_storage']
188 189
  path.alias_manager:
    class: Drupal\Core\Path\AliasManager
190
    arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
191
  http_client:
192
    class: Drupal\Core\Http\Client
193 194
    tags:
      - { name: service_collector, tag: http_client_subscriber, call: attach }
195 196
  theme.negotiator:
    class: Drupal\Core\Theme\ThemeNegotiator
197
    arguments: ['@access_check.theme', '@request_stack']
198 199
    tags:
      - { name: service_collector, tag: theme_negotiator, call: addNegotiator }
200 201 202 203 204 205 206 207 208 209
  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']
    tags:
      - { name: theme_negotiator, priority: 1000 }
210 211 212 213 214
  container.namespaces:
    class: ArrayObject
    arguments: [ '%container.namespaces%' ]
    tags:
      - { name: persist }
215 216 217 218
  container.trait:
    abstract: true
    calls:
      - [setContainer, ['@service_container']]
219 220
  default_plugin_manager:
    abstract: true
221
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler']
222
  module_handler:
223 224
    class: Drupal\Core\Extension\ModuleHandler
    arguments: ['%container.modules%', '@cache.bootstrap']
225 226
  theme_handler:
    class: Drupal\Core\Extension\ThemeHandler
227
    arguments: ['@config.factory', '@module_handler', '@state', '@info_parser', '@config.installer', '@router.builder']
228
  entity.manager:
229
    class: Drupal\Core\Entity\EntityManager
230
    arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@language_manager', '@string_translation', '@class_resolver', '@typed_data_manager']
231
    parent: container.trait
232 233
    tags:
      - { name: plugin_manager_cache_clear }
234 235 236
  entity.form_builder:
    class: Drupal\Core\Entity\EntityFormBuilder
    arguments: ['@entity.manager', '@form_builder']
237 238
  plugin.manager.field.field_type:
    class: Drupal\Core\Field\FieldTypePluginManager
239
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler']
240 241
  plugin.manager.field.widget:
    class: Drupal\Core\Field\WidgetPluginManager
242
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@language_manager', '@plugin.manager.field.field_type']
243 244
  plugin.manager.field.formatter:
    class: Drupal\Core\Field\FormatterPluginManager
245
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@language_manager', '@plugin.manager.field.field_type']
246 247
  plugin.manager.archiver:
    class: Drupal\Core\Archiver\ArchiverManager
248
    parent: default_plugin_manager
249 250
  plugin.manager.action:
    class: Drupal\Core\Action\ActionManager
251
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler']
252 253
  plugin.manager.menu.local_action:
    class: Drupal\Core\Menu\LocalActionManager
254
    arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
255 256
  plugin.manager.menu.local_task:
    class: Drupal\Core\Menu\LocalTaskManager
257
    arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@router.builder', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
258 259
  plugin.manager.menu.contextual_link:
    class: Drupal\Core\Menu\ContextualLinkManager
260
    arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
261 262
  plugin.cache_clearer:
    class: Drupal\Core\Plugin\CachedDiscoveryClearer
263 264
  request:
    class: Symfony\Component\HttpFoundation\Request
265
    synthetic: true
266
    synchronized: true
267 268
  request_stack:
    class: Symfony\Component\HttpFoundation\RequestStack
269 270
    tags:
      - { name: persist }
271 272 273 274
  event_dispatcher:
    class: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
    arguments: ['@service_container']
  controller_resolver:
275
    class: Drupal\Core\Controller\ControllerResolver
276 277 278 279 280
    arguments: ['@class_resolver', '@logger.channel.default']
  class_resolver:
    class: Drupal\Core\DependencyInjection\ClassResolver
    calls:
      - [setContainer, ['@service_container']]
281 282 283
  title_resolver:
    class: Drupal\Core\Controller\TitleResolver
    arguments: ['@controller_resolver', '@string_translation']
284 285
  http_kernel:
    class: Drupal\Core\HttpKernel
286 287
    arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
    parent: container.trait
288 289
  language_manager:
    class: Drupal\Core\Language\LanguageManager
290 291 292 293
    arguments: ['@language.default']
  language.default:
    class: Drupal\Core\Language\LanguageDefault
    arguments: ['%language.default_values%']
294 295
  string_translator.custom_strings:
    class: Drupal\Core\StringTranslation\Translator\CustomStrings
296
    arguments: ['@settings']
297 298 299 300
    tags:
      - { name: string_translator, priority: 30 }
  string_translation:
    class: Drupal\Core\StringTranslation\TranslationManager
301 302 303
    arguments: ['@language_manager']
    calls:
      - [initLanguageManager]
304 305
    tags:
      - { name: service_collector, tag: string_translator, call: addTranslator }
306 307 308 309 310
  database.slave:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [slave]
311
  typed_data_manager:
312
    class: Drupal\Core\TypedData\TypedDataManager
313
    parent: default_plugin_manager
314 315
    calls:
      - [setValidationConstraintManager, ['@validation.constraint']]
316 317
    tags:
      - { name: plugin_manager_cache_clear }
318 319
  validation.constraint:
    class: Drupal\Core\Validation\ConstraintManager
320
    parent: default_plugin_manager
321 322
  lock:
    class: Drupal\Core\Lock\DatabaseLockBackend
323
    arguments: ['@database']
324 325
  router.request_context:
    class: Symfony\Component\Routing\RequestContext
326 327
    tags:
      - { name: persist }
328 329
  router.admin_context:
    class: Drupal\Core\Routing\AdminContext
330
    arguments: ['@request_stack']
331 332
  router.route_provider:
    class: Drupal\Core\Routing\RouteProvider
333
    arguments: ['@database', '@router.builder', '@state']
334 335
    tags:
      - { name: event_subscriber }
336 337 338 339 340
  router.route_preloader:
    class: Drupal\Core\Routing\RoutePreloader
    arguments: ['@router.route_provider', '@state', '@content_negotiation']
    tags:
      - { name: 'event_subscriber' }
341 342 343 344 345 346 347
  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']]
348 349
    tags:
      - { name: service_collector, tag: route_filter, call: addRouteFilter }
350
  url_generator:
351
    class: Drupal\Core\Routing\UrlGenerator
352
    arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@config.factory', '@settings', '@logger.channel.default']
353 354
    calls:
      - [setRequest, ['@?request']]
355
      - [setContext, ['@?router.request_context']]
356 357
  link_generator:
    class: Drupal\Core\Utility\LinkGenerator
358
    arguments: ['@url_generator', '@module_handler']
359 360
  router.dynamic:
    class: Symfony\Cmf\Component\Routing\DynamicRouter
361
    arguments: ['@router.request_context', '@router.matcher', '@url_generator']
362 363
    tags:
      - { name: service_collector, tag: route_enhancer, call: addRouteEnhancer }
364 365 366 367 368
  router:
    class: Symfony\Cmf\Component\Routing\ChainRouter
    calls:
      - [setContext, ['@router.request_context']]
      - [add, ['@router.dynamic']]
369 370 371 372 373
  router.path_roots_subscriber:
    class: Drupal\Core\EventSubscriber\PathRootsSubscriber
    arguments: ['@state']
    tags:
      - { name: event_subscriber }
374 375
  entity.query:
    class: Drupal\Core\Entity\Query\QueryFactory
376
    arguments: ['@entity.manager']
377 378 379 380
    calls:
      - [setContainer, ['@service_container']]
  entity.query.config:
    class: Drupal\Core\Config\Entity\Query\QueryFactory
381
    arguments: ['@config.storage', '@config.factory']
382 383 384
  entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\QueryFactory
    arguments: ['@database']
385 386 387
  entity.query.keyvalue:
    class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
    arguments: ['@keyvalue']
388 389
  router.dumper:
    class: Drupal\Core\Routing\MatcherDumper
390
    arguments: ['@database', '@state']
391 392
  router.builder:
    class: Drupal\Core\Routing\RouteBuilder
393 394 395
    arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@state']
  router.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\RouterRebuildSubscriber
396
    arguments: ['@router.builder', '@lock']
397 398
    tags:
      - { name: event_subscriber }
399 400
  path.alias_storage:
    class: Drupal\Core\Path\AliasStorage
401
    arguments: ['@database', '@module_handler']
402 403 404 405 406 407 408 409 410
# 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]
411 412 413 414 415 416 417
  accept_header_matcher:
    class: Drupal\Core\Routing\AcceptHeaderMatcher
    arguments: ['@content_negotiation']
    tags:
      - { name: route_filter }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
418 419 420 421
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
422 423 424 425 426 427 428
    calls:
      - [setContainer, ['@service_container']]
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
429 430 431 432
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
433
    arguments: ['@entity.manager']
434 435 436 437 438 439
  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']
440 441 442 443 444
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
445 446 447 448
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
449
    arguments: ['@entity.manager']
450 451 452 453 454
  reverse_proxy_subscriber:
    class: Drupal\Core\EventSubscriber\ReverseProxySubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@settings']
455 456 457 458
  ajax_response_subscriber:
    class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
    tags:
      - { name: event_subscriber }
459 460 461 462 463 464
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
465 466 467 468
  route_enhancer.authentication:
    class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
    tags:
      - { name: route_enhancer, priority: 1000 }
469
    arguments: ['@authentication', '@current_user']
470 471
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
472
    arguments: ['@controller_resolver', '@entity.manager', '@form_builder']
473
    tags:
474
      - { name: route_enhancer, priority: 20 }
475 476 477 478 479 480 481
  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
482
    arguments: ['@class_resolver', '@controller_resolver', '@form_builder']
483
    parent: container.trait
484
    tags:
485
      - { name: event_subscriber }
486 487 488 489
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
490 491 492 493
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
494 495
  controller.page:
    class: Drupal\Core\Controller\HtmlPageController
496
    arguments: ['@controller_resolver', '@title_resolver', '@url_generator']
497 498
  controller.ajax:
    class: Drupal\Core\Controller\AjaxController
499
    arguments: ['@controller_resolver', '@ajax_response_renderer']
500 501
  controller.entityform:
    class: Drupal\Core\Entity\HtmlEntityFormController
502
    arguments: ['@class_resolver', '@controller_resolver', '@service_container', '@entity.manager']
503 504
  controller.dialog:
    class: Drupal\Core\Controller\DialogController
505
    arguments: ['@controller_resolver', '@title_resolver']
506 507
  ajax_response_renderer:
    class: Drupal\Core\Ajax\AjaxResponseRenderer
508 509 510 511
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
512
    arguments: ['@router', '@router.request_context', NULL, '@request_stack']
513 514 515 516 517 518
  content_negotiation:
    class: Drupal\Core\ContentNegotiation
  view_subscriber:
    class: Drupal\Core\EventSubscriber\ViewSubscriber
    tags:
      - { name: event_subscriber }
519
    arguments: ['@content_negotiation', '@title_resolver', '@ajax_response_renderer']
520 521 522 523
  html_view_subscriber:
    class: Drupal\Core\EventSubscriber\HtmlViewSubscriber
    tags:
      - { name: event_subscriber }
524 525 526 527
    arguments: ['@html_fragment_renderer', '@html_page_renderer']
  html_fragment_renderer:
    class: Drupal\Core\Page\DefaultHtmlFragmentRenderer
    arguments: ['@language_manager']
528 529
  html_page_renderer:
    class: Drupal\Core\Page\DefaultHtmlPageRenderer
530 531 532 533 534
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
535
    arguments: ['@private_key']
536 537
  access_arguments_resolver:
    class: Drupal\Core\Access\AccessArgumentsResolver
538 539
  access_manager:
    class: Drupal\Core\Access\AccessManager
540
    arguments: ['@router.route_provider', '@url_generator', '@paramconverter_manager', '@access_arguments_resolver']
541 542
    calls:
      - [setContainer, ['@service_container']]
543
      - [setRequest, ['@?request']]
544 545
  access_subscriber:
    class: Drupal\Core\EventSubscriber\AccessSubscriber
546 547 548 549 550 551 552
    arguments: ['@access_manager', '@current_user']
    calls:
      - [setCurrentUser, ['@?current_user']]
    tags:
      - { name: event_subscriber }
  access_route_subscriber:
    class: Drupal\Core\EventSubscriber\AccessRouteSubscriber
553 554 555 556 557 558
    tags:
      - { name: event_subscriber }
    arguments: ['@access_manager']
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
559
      - { name: access_check, applies_to: _access }
560 561 562
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
563
      - { name: access_check, applies_to: _entity_access }
564 565
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
566
    arguments: ['@entity.manager']
567
    tags:
568
      - { name: access_check, applies_to: _entity_create_access }
569 570 571
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
    tags:
572
      - { name: access_check, applies_to: _access_theme }
573 574
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
575
    arguments: ['@controller_resolver', '@access_arguments_resolver']
576
    tags:
577
      - { name: access_check, applies_to: _custom_access }
578 579 580
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
581
      - { name: access_check, applies_to: _csrf_token }
582
    arguments: ['@csrf_token']
583 584
  maintenance_mode_subscriber:
    class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
585
    arguments: ['@state', '@config.factory', '@string_translation', '@url_generator', '@current_user']
586 587 588 589 590 591
    tags:
      - { name: event_subscriber }
  path_subscriber:
    class: Drupal\Core\EventSubscriber\PathSubscriber
    tags:
      - { name: event_subscriber }
592
    arguments: ['@path.alias_manager', '@path_processor_manager']
593 594 595 596 597 598 599 600
  legacy_request_subscriber:
    class: Drupal\Core\EventSubscriber\LegacyRequestSubscriber
    tags:
      - { name: event_subscriber }
  finish_response_subscriber:
    class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
    tags:
      - { name: event_subscriber }
601
    arguments: ['@language_manager', '@config.factory']
602
    scope: request
603 604 605 606 607 608
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@url_generator']
    tags:
      - { name: event_subscriber }
    scope: request
609 610 611 612 613
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
614 615 616 617 618 619 620 621
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
622
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
623
  exception_controller:
624
    class: Drupal\Core\Controller\ExceptionController
625
    arguments: ['@content_negotiation', '@title_resolver', '@html_page_renderer', '@html_fragment_renderer', '@string_translation', '@url_generator']
626 627 628
    calls:
      - [setContainer, ['@service_container']]
  exception_listener:
629
    class: Drupal\Core\EventSubscriber\ExceptionListener
630 631 632
    tags:
      - { name: event_subscriber }
    arguments: [['@exception_controller', execute]]
633 634
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
635 636
    tags:
      - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
637 638
  path_processor_manager:
    class: Drupal\Core\PathProcessor\PathProcessorManager
639 640 641
    tags:
      - { name: service_collector, tag: path_processor_inbound, call: addInbound }
      - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
642 643 644 645 646 647 648 649
  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 }
650
      - { name: path_processor_outbound, priority: 200 }
651 652 653 654 655
    arguments: ['@config.factory']
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
656
      - { name: path_processor_outbound, priority: 300 }
657
    arguments: ['@path.alias_manager']
658
  route_processor_csrf:
659 660 661 662
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
663 664 665 666
  transliteration:
    class: Drupal\Core\Transliteration\PHPTransliteration
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
667
    arguments: ['@database', '@request_stack']
668 669
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
670
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler', '@config.factory']
671 672
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
673
    parent: default_plugin_manager
674 675 676 677 678 679 680 681 682 683 684
  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:
685
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
686
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@config.factory', '@module_handler']
687 688
  image.factory:
    class: Drupal\Core\Image\ImageFactory
689
    arguments: ['@image.toolkit.manager']
690 691
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
692
    arguments: ['@module_handler']
693 694
    tags:
      - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
695 696
  token:
    class: Drupal\Core\Utility\Token
697
    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
698
  batch.storage:
699
    class: Drupal\Core\Batch\BatchStorage
700
    arguments: ['@database']
701 702 703 704
  slave_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\SlaveDatabaseIgnoreSubscriber
    tags:
      - {name: event_subscriber}
705 706 707
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
708 709
  date:
    class: Drupal\Core\Datetime\Date
710
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 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
  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
765 766
  theme.registry:
    class: Drupal\Core\Theme\Registry
767
    arguments: ['@cache.default', '@lock', '@module_handler']
768 769
    tags:
      - { name: needs_destruction }
770 771 772 773 774 775 776
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@authentication']
777
  current_user:
778
    class: Drupal\Core\Session\AccountProxy
779
    arguments: ['@authentication', '@request']
780 781
  session_manager:
    class: Drupal\Core\Session\SessionManager
782
    arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@settings']
783 784
    tags:
      - { name: persist }
785 786 787
  session_manager.metadata_bag:
    class: Drupal\Core\Session\MetadataBag
    arguments: ['@settings']
788 789
  asset.css.collection_renderer:
    class: Drupal\Core\Asset\CssCollectionRenderer
790
    arguments: [ '@state' ]
791 792 793 794 795 796 797 798 799 800 801
  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
802
    arguments: [ '@state' ]
803 804 805 806 807 808 809 810 811
  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
812 813
  library.discovery:
    class: Drupal\Core\Asset\LibraryDiscovery
814
    arguments: ['@cache.discovery', '@module_handler']
815 816
  info_parser:
    class: Drupal\Core\Extension\InfoParser
817 818 819
  element_info:
    class: Drupal\Core\Render\ElementInfo
    arguments: ['@module_handler']