core.services.yml 28.9 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 12 13 14 15 16 17 18 19 20 21 22 23 24
  cache_contexts:
    class: Drupal\Core\Cache\CacheContexts
    arguments: ['@service_container', '%cache_contexts%' ]
  cache_context.url:
    class: Drupal\Core\Cache\UrlCacheContext
    arguments: ['@request']
    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
    arguments: ['@request', '@theme.negotiator']
    tags:
      - { name: cache.context}
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
  cache.backend.database:
    class: Drupal\Core\Cache\DatabaseBackendFactory
    arguments: ['@database']
  cache.bootstrap:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [bootstrap]
  cache.config:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [config]
42
  cache.default:
43 44 45 46 47
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
48
    arguments: [default]
49 50 51 52 53 54 55
  cache.entity:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [entity]
56
  cache.render:
57 58 59 60 61
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
62 63
    arguments: [render]
  cache.data:
64 65 66 67 68
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
69
    arguments: [data]
70 71 72 73 74 75 76
  cache.discovery:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [discovery]
77 78
  config.manager:
    class: Drupal\Core\Config\ConfigManager
79
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage']
80 81 82
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
83 84
      - { name: event_subscriber }
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
85 86
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
87
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
88 89 90 91 92 93 94 95 96
  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
97 98 99 100 101 102 103 104
  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:
105 106
    class: Drupal\Core\Config\ExtensionInstallStorage
    arguments: ['@config.storage', 'config/schema']
107 108
  config.storage.installer:
    class: Drupal\Core\Config\InstallStorage
109 110
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
111
    arguments: ['@config.storage', '@config.storage.schema', '@cache.config']
112 113
  cron:
    class: Drupal\Core\Cron
114
    arguments: ['@module_handler', '@lock', '@queue', '@state', '@current_user', '@session_manager']
115 116 117 118 119
  database:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [default]
120 121 122 123
  form_builder:
    class: Drupal\Core\Form\FormBuilder
    arguments: ['@module_handler', '@keyvalue.expirable', '@event_dispatcher', '@url_generator', '@string_translation', '@?csrf_token', '@?http_kernel']
    calls:
124
      - [setRequest, ['@?request=']]
125 126
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
127
    arguments: ['@service_container', '@settings']
128 129
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
130
    arguments: ['@serialization.phpserialize', '@database']
131 132
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
133
    arguments: ['@service_container', '@settings']
134 135
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
136
    arguments: ['@serialization.phpserialize', '@database']
137 138
    tags:
      - { name: needs_destruction }
139 140 141 142 143 144 145 146

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

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