core.services.yml 44.5 KB
Newer Older
1
parameters:
2
  session.storage.options: {}
3
4
5
6
7
  twig.config: {}
  factory.keyvalue:
    default: keyvalue.database
  factory.keyvalue.expirable:
    default: keyvalue.expirable.database
8
9
10
services:
  cache_factory:
    class: Drupal\Core\Cache\CacheFactory
11
    arguments: ['@settings', '%cache_default_bin_backends%']
12
13
    calls:
      - [setContainer, ['@service_container']]
14
15
16
17
18
  cache_contexts:
    class: Drupal\Core\Cache\CacheContexts
    arguments: ['@service_container', '%cache_contexts%' ]
  cache_context.url:
    class: Drupal\Core\Cache\UrlCacheContext
19
    arguments: ['@request_stack']
20
21
22
23
24
25
26
27
28
    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
29
    arguments: ['@theme.manager']
30
31
    tags:
      - { name: cache.context}
32
33
34
35
  cache_context.timezone:
    class: Drupal\Core\Cache\TimeZoneCacheContext
    tags:
      - { name: cache.context}
36
37
38
39
40
41
42
43
44
45
46
47
  cache_tags.invalidator:
    parent: container.trait
    class: Drupal\Core\Cache\CacheTagsInvalidator
    calls:
      - [setContainer, ['@service_container']]
    tags:
      - { name: service_collector, call: addInvalidator, tag: cache_tags_invalidator }
  cache_tags.invalidator.checksum:
    class: Drupal\Core\Cache\DatabaseCacheTagsChecksum
    arguments: ['@database']
    tags:
      - { name: cache_tags_invalidator}
48
49
50
51
52
  cache.backend.chainedfast:
    class: Drupal\Core\Cache\ChainedFastBackendFactory
    arguments: ['@settings']
    calls:
      - [setContainer, ['@service_container']]
53
54
  cache.backend.database:
    class: Drupal\Core\Cache\DatabaseBackendFactory
55
    arguments: ['@database', '@cache_tags.invalidator.checksum']
56
57
  cache.backend.apcu:
    class: Drupal\Core\Cache\ApcuBackendFactory
58
    arguments: ['@app.root', '@cache_tags.invalidator.checksum']
59
60
  cache.backend.php:
    class: Drupal\Core\Cache\PhpBackendFactory
61
    arguments: ['@cache_tags.invalidator.checksum']
62
63
64
  cache.bootstrap:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
65
      - { name: cache.bin, default_backend: cache.backend.chainedfast }
66
67
68
    factory_method: get
    factory_service: cache_factory
    arguments: [bootstrap]
69
70
71
  cache.config:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
72
      - { name: cache.bin, default_backend: cache.backend.chainedfast }
73
74
75
    factory_method: get
    factory_service: cache_factory
    arguments: [config]
76
  cache.default:
77
78
79
80
81
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
82
    arguments: [default]
83
84
85
86
87
88
89
  cache.entity:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [entity]
90
91
92
93
94
95
96
  cache.menu:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [menu]
97
  cache.render:
98
99
100
101
102
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
103
104
    arguments: [render]
  cache.data:
105
106
107
108
109
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
110
    arguments: [data]
111
112
113
  cache.discovery:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
114
      - { name: cache.bin, default_backend: cache.backend.chainedfast }
115
116
117
    factory_method: get
    factory_service: cache_factory
    arguments: [discovery]
118
119
  page_cache_request_policy:
    class: Drupal\Core\PageCache\DefaultRequestPolicy
120
    arguments: ['@session_configuration']
121
122
123
124
125
126
127
128
129
130
    tags:
      - { name: service_collector, tag: page_cache_request_policy, call: addPolicy}
  page_cache_response_policy:
    class: Drupal\Core\PageCache\ChainResponsePolicy
    tags:
      - { name: service_collector, tag: page_cache_response_policy, call: addPolicy}
  page_cache_kill_switch:
    class: Drupal\Core\PageCache\ResponsePolicy\KillSwitch
    tags:
      - { name: page_cache_response_policy }
131
132
  config.manager:
    class: Drupal\Core\Config\ConfigManager
133
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
134
135
136
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
137
      - { name: event_subscriber }
138
      - { name: service_collector, tag: 'config.factory.override', call: addOverride }
139
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
140
141
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
142
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
143
  config.storage:
144
145
    class: Drupal\Core\Config\CachedStorage
    arguments: ['@config.storage.active', '@cache.config']
146
147
148
  config.storage.active:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', 'config']
149
    public: false
150
151
    tags:
      - { name: backend_overridable }
152
153
154
155
  config.storage.file:
    class: Drupal\Core\Config\FileStorage
    factory_class: Drupal\Core\Config\FileStorageFactory
    factory_method: getActive
156
    public: false
157
158
159
160
161
162
163
  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]
164
165
    tags:
      - { name: backend_overridable }
166
  config.storage.schema:
167
168
    class: Drupal\Core\Config\ExtensionInstallStorage
    arguments: ['@config.storage', 'config/schema']
169
170
  config.storage.installer:
    class: Drupal\Core\Config\InstallStorage
171
172
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
173
174
175
    arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery', '@module_handler']
    tags:
      - { name: plugin_manager_cache_clear }
176
177
178
  context.handler:
    class: Drupal\Core\Plugin\Context\ContextHandler
    arguments: ['@typed_data_manager']
179
180
  cron:
    class: Drupal\Core\Cron
181
    arguments: ['@module_handler', '@lock', '@queue', '@state', '@account_switcher', '@logger.channel.cron', '@plugin.manager.queue_worker']
182
    lazy: true
183
184
185
  diff.formatter:
    class: Drupal\Core\Diff\DiffFormatter
    arguments: ['@config.factory']
186
187
188
189
190
  database:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [default]
191
192
  form_builder:
    class: Drupal\Core\Form\FormBuilder
193
    arguments: ['@form_validator', '@form_submitter', '@form_cache', '@module_handler', '@event_dispatcher', '@request_stack', '@class_resolver', '@theme.manager', '@?csrf_token']
194
195
  form_validator:
    class: Drupal\Core\Form\FormValidator
196
    arguments: ['@request_stack', '@string_translation', '@csrf_token', '@logger.channel.form']
197
198
199
  form_submitter:
    class: Drupal\Core\Form\FormSubmitter
    arguments: ['@request_stack', '@url_generator']
200
201
  form_cache:
    class: Drupal\Core\Form\FormCache
202
    arguments: ['@app.root', '@keyvalue.expirable', '@module_handler', '@current_user', '@csrf_token', '@logger.channel.form', '@config.factory', '@request_stack', '@page_cache_request_policy']
203
    public: false  # Private to form_builder
204
205
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
206
    arguments: ['@service_container', '%factory.keyvalue%']
207
208
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
209
    arguments: ['@serialization.phpserialize', '@database']
210
211
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
212
    arguments: ['@service_container', '%factory.keyvalue.expirable%']
213
214
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
215
    arguments: ['@serialization.phpserialize', '@database']
216
217
218
219
220
  logger.factory:
    class: Drupal\Core\Logger\LoggerChannelFactory
    parent: container.trait
    tags:
      - { name: service_collector, tag: logger, call: addLogger }
221
222
  logger.channel_base:
    abstract: true
223
224
225
    class: Drupal\Core\Logger\LoggerChannel
    factory_method: get
    factory_service: logger.factory
226
227
  logger.channel.default:
    parent: logger.channel_base
228
    arguments: ['system']
229
  logger.channel.php:
230
    parent: logger.channel_base
231
    arguments: ['php']
232
  logger.channel.image:
233
    parent: logger.channel_base
234
    arguments: ['image']
235
  logger.channel.cron:
236
    parent: logger.channel_base
237
238
    arguments: ['cron']
  logger.channel.form:
239
    parent: logger.channel_base
240
    arguments: ['form']
241
242
  logger.log_message_parser:
    class: Drupal\Core\Logger\LogMessageParser
243
244
245
246
247
248
249
250

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

251
  settings:
252
253
    class: Drupal\Core\Site\Settings
    factory_class: Drupal\Core\Site\Settings
254
    factory_method: getInstance
255
  state:
256
    class: Drupal\Core\State\State
257
    arguments: ['@keyvalue']
258
259
260
261
262
263
264
265
266
267
268
269
  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 }
270
    arguments: [path_alias_whitelist, '@cache.default', '@lock', '@state', '@path.alias_storage']
271
272
  path.alias_manager:
    class: Drupal\Core\Path\AliasManager
273
    arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
274
  http_client:
275
    class: Drupal\Core\Http\Client
276
277
    tags:
      - { name: service_collector, tag: http_client_subscriber, call: attach }
278
279
  theme.negotiator:
    class: Drupal\Core\Theme\ThemeNegotiator
280
    arguments: ['@access_check.theme']
281
282
    tags:
      - { name: service_collector, tag: theme_negotiator, call: addNegotiator }
283
284
285
286
287
288
289
  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
290
    arguments: ['@csrf_token', '@config.factory', '@request_stack']
291
292
    tags:
      - { name: theme_negotiator, priority: 1000 }
293
294
295
  container.namespaces:
    class: ArrayObject
    arguments: [ '%container.namespaces%' ]
296
297
298
299
  container.trait:
    abstract: true
    calls:
      - [setContainer, ['@service_container']]
300
301
  default_plugin_manager:
    abstract: true
302
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
303
  module_handler:
304
    class: Drupal\Core\Extension\ModuleHandler
305
306
307
    arguments: ['@app.root', '%container.modules%', '@cache.bootstrap']
  module_installer:
    class: Drupal\Core\Extension\ModuleInstaller
308
309
    tags:
      - { name: service_collector, tag: 'module_install.uninstall_validator', call: addUninstallValidator }
310
    arguments: ['@app.root', '@module_handler', '@kernel']
311
312
313
314
  content_uninstall_validator:
    class: Drupal\Core\Entity\ContentUninstallValidator
    tags:
      - { name: module_install.uninstall_validator }
315
316
317
318
319
    arguments: ['@entity.manager', '@string_translation']
  field_uninstall_validator:
    class: Drupal\Core\Field\FieldModuleUninstallValidator
    tags:
      - { name: module_install.uninstall_validator }
320
    arguments: ['@entity.manager', '@string_translation']
321
322
  theme_handler:
    class: Drupal\Core\Extension\ThemeHandler
323
    arguments: ['@app.root', '@config.factory', '@module_handler', '@state', '@info_parser', '@logger.channel.default', '@asset.css.collection_optimizer', '@config.installer', '@config.manager', '@router.builder_indicator']
324
  entity.manager:
325
    class: Drupal\Core\Entity\EntityManager
326
    arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@language_manager', '@string_translation', '@class_resolver', '@typed_data_manager', '@entity.definitions.installed', '@event_dispatcher']
327
    parent: container.trait
328
329
    tags:
      - { name: plugin_manager_cache_clear }
330
331
332
333
334
  entity_route_subscriber:
    class: Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
    arguments: ['@entity.manager']
    tags:
      - { name: event_subscriber }
335
336
337
338
339
340
341
342
  entity.definitions.installed:
    class: Drupal\Core\KeyValueStore\KeyValueStoreInterface
    factory_method: get
    factory_service: keyvalue
    arguments: ['entity.definitions.installed']
  entity.definition_update_manager:
    class: Drupal\Core\Entity\EntityDefinitionUpdateManager
    arguments: ['@entity.manager']
343
344
345
  entity.form_builder:
    class: Drupal\Core\Entity\EntityFormBuilder
    arguments: ['@entity.manager', '@form_builder']
346
347
348
349
350
  entity.bundle_config_import_validator:
    class: Drupal\Core\Entity\Event\BundleConfigImportValidate
    arguments: ['@config.manager', '@entity.manager']
    tags:
      - { name: event_subscriber }
351
352
353
  plugin.manager.block:
    class: Drupal\Core\Block\BlockManager
    parent: default_plugin_manager
354
355
  plugin.manager.field.field_type:
    class: Drupal\Core\Field\FieldTypePluginManager
356
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
357
358
  plugin.manager.field.widget:
    class: Drupal\Core\Field\WidgetPluginManager
359
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
360
361
  plugin.manager.field.formatter:
    class: Drupal\Core\Field\FormatterPluginManager
362
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
363
364
  plugin.manager.archiver:
    class: Drupal\Core\Archiver\ArchiverManager
365
    parent: default_plugin_manager
366
367
  plugin.manager.action:
    class: Drupal\Core\Action\ActionManager
368
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
369
370
371
  plugin.manager.menu.link:
    class: Drupal\Core\Menu\MenuLinkManager
    arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
372
373
  menu.link_tree:
    class: Drupal\Core\Menu\MenuLinkTree
374
    arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@controller_resolver', '@cache.menu', '@current_route_match']
375
376
  menu.default_tree_manipulators:
    class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
377
    arguments: ['@access_manager', '@current_user', '@entity.query']
378
379
380
381
382
383
  menu.active_trail:
    class: Drupal\Core\Menu\MenuActiveTrail
    arguments: ['@plugin.manager.menu.link', '@current_route_match']
  menu.parent_form_selector:
    class: Drupal\Core\Menu\MenuParentFormSelector
    arguments: ['@menu.link_tree', '@entity.manager', '@string_translation']
384
385
  plugin.manager.menu.local_action:
    class: Drupal\Core\Menu\LocalActionManager
386
    arguments: ['@controller_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
387
388
  plugin.manager.menu.local_task:
    class: Drupal\Core\Menu\LocalTaskManager
389
    arguments: ['@controller_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@router.builder', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
390
391
  plugin.manager.menu.contextual_link:
    class: Drupal\Core\Menu\ContextualLinkManager
392
    arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
393
394
395
  plugin.manager.display_variant:
    class: Drupal\Core\Display\VariantManager
    parent: default_plugin_manager
396
397
398
  plugin.manager.queue_worker:
    class: Drupal\Core\Queue\QueueWorkerManager
    parent: default_plugin_manager
399
400
  plugin.cache_clearer:
    class: Drupal\Core\Plugin\CachedDiscoveryClearer
401
    lazy: true
402
403
404
405
406
  paramconverter.menu_link:
    class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
    tags:
      - { name: paramconverter }
    arguments: ['@plugin.manager.menu.link']
407
408
409
410
  menu.tree_storage:
    class: Drupal\Core\Menu\MenuTreeStorage
    arguments: ['@database', '@cache.menu', 'menu_tree']
    public: false  # Private to plugin.manager.menu.link and menu.link_tree
411
412
    tags:
      - { name: backend_overridable }
413
414
415
  menu_link.static.overrides:
    class: Drupal\Core\Menu\StaticMenuLinkOverrides
    arguments: ['@config.factory']
416
417
  request_stack:
    class: Symfony\Component\HttpFoundation\RequestStack
418
419
    tags:
      - { name: persist }
420
421
422
  current_route_match:
     class: Drupal\Core\Routing\CurrentRouteMatch
     arguments: ['@request_stack']
423
  event_dispatcher:
424
    class: Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher
425
    arguments: ['@service_container']
426
427
428
429
430
431
432
  app.root:
    class: SplString
    factory_service: 'app.root.factory'
    factory_method: 'get'
  app.root.factory:
    class: Drupal\Core\AppRootFactory
    arguments: ['@kernel']
433
  controller_resolver:
434
    class: Drupal\Core\Controller\ControllerResolver
435
    arguments: ['@class_resolver']
436
437
438
439
  class_resolver:
    class: Drupal\Core\DependencyInjection\ClassResolver
    calls:
      - [setContainer, ['@service_container']]
440
441
442
  title_resolver:
    class: Drupal\Core\Controller\TitleResolver
    arguments: ['@controller_resolver', '@string_translation']
443
  http_kernel:
444
    class: Stack\StackedHttpKernel
445
  http_kernel.basic:
446
    class: Symfony\Component\HttpKernel\HttpKernel
447
    arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
  http_middleware.reverse_proxy:
    class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
    arguments: ['@settings']
    tags:
      - { name: http_middleware, priority: 300 }
  http_middleware.page_cache:
    class: Drupal\Core\StackMiddleware\PageCache
    arguments: ['@kernel']
    tags:
      - { name: http_middleware, priority: 200 }
  http_middleware.kernel_pre_handle:
    class: Drupal\Core\StackMiddleware\KernelPreHandle
    arguments: ['@kernel']
    tags:
      - { name: http_middleware, priority: 100 }
463
464
  language_manager:
    class: Drupal\Core\Language\LanguageManager
465
466
467
468
    arguments: ['@language.default']
  language.default:
    class: Drupal\Core\Language\LanguageDefault
    arguments: ['%language.default_values%']
469
470
  string_translator.custom_strings:
    class: Drupal\Core\StringTranslation\Translator\CustomStrings
471
    arguments: ['@settings']
472
473
474
475
    tags:
      - { name: string_translator, priority: 30 }
  string_translation:
    class: Drupal\Core\StringTranslation\TranslationManager
476
477
478
    arguments: ['@language_manager']
    calls:
      - [initLanguageManager]
479
480
    tags:
      - { name: service_collector, tag: string_translator, call: addTranslator }
481
  database.replica:
482
483
484
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
485
    arguments: [replica]
486
  typed_data_manager:
487
    class: Drupal\Core\TypedData\TypedDataManager
488
    parent: default_plugin_manager
489
490
    calls:
      - [setValidationConstraintManager, ['@validation.constraint']]
491
492
    tags:
      - { name: plugin_manager_cache_clear }
493
494
  validation.constraint:
    class: Drupal\Core\Validation\ConstraintManager
495
    parent: default_plugin_manager
496
497
  lock:
    class: Drupal\Core\Lock\DatabaseLockBackend
498
    arguments: ['@database']
499
500
    tags:
      - { name: backend_overridable }
501
502
503
  lock.persistent:
    class: Drupal\Core\Lock\PersistentDatabaseLockBackend
    arguments: ['@database']
504
  router.request_context:
505
    class: Drupal\Core\Routing\RequestContext
506
507
    tags:
      - { name: persist }
508
509
    calls:
      - [fromRequestStack, ['@request_stack']]
510
511
  router.admin_context:
    class: Drupal\Core\Routing\AdminContext
512
    arguments: ['@current_route_match']
513
514
  router.route_provider:
    class: Drupal\Core\Routing\RouteProvider
515
    arguments: ['@database', '@router.builder', '@state']
516
517
    tags:
      - { name: event_subscriber }
518
      - { name: backend_overridable }
519
520
521
522
523
  router.route_preloader:
    class: Drupal\Core\Routing\RoutePreloader
    arguments: ['@router.route_provider', '@state', '@content_negotiation']
    tags:
      - { name: 'event_subscriber' }
524
525
526
527
528
529
530
  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']]
531
    tags:
532
533
534
535
536
537
538
539
540
541
542
      - { name: service_collector, tag: non_lazy_route_filter, call: addRouteFilter }
  route_filter.lazy_collector:
    class: Drupal\Core\Routing\LazyRouteFilter
    tags:
      - { name: non_lazy_route_filter }
    parent: container.trait
  route_filter_subscriber:
    class: Drupal\Core\EventSubscriber\RouteFilterSubscriber
    arguments: ['@route_filter.lazy_collector']
    tags:
      - { name: event_subscriber }
543
  url_generator:
544
    class: Drupal\Core\Routing\UrlGenerator
545
    arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@config.factory', '@logger.channel.default', '@request_stack']
546
    calls:
547
      - [setContext, ['@?router.request_context']]
548
549
  unrouted_url_assembler:
    class: Drupal\Core\Utility\UnroutedUrlAssembler
550
    arguments: ['@request_stack', '@config.factory', '@path_processor_manager']
551
552
  link_generator:
    class: Drupal\Core\Utility\LinkGenerator
553
    arguments: ['@url_generator', '@module_handler']
554
555
556
  router:
    class: Drupal\Core\Routing\AccessAwareRouter
    arguments: ['@router.no_access_checks', '@access_manager', '@current_user']
557
558
  router.dynamic:
    class: Symfony\Cmf\Component\Routing\DynamicRouter
559
    arguments: ['@router.request_context', '@router.matcher', '@url_generator']
560
    tags:
561
      - { name: service_collector, tag: non_lazy_route_enhancer, call: addRouteEnhancer }
562
  router.no_access_checks:
563
564
565
566
    class: Symfony\Cmf\Component\Routing\ChainRouter
    calls:
      - [setContext, ['@router.request_context']]
      - [add, ['@router.dynamic']]
567
568
569
570
571
  router.path_roots_subscriber:
    class: Drupal\Core\EventSubscriber\PathRootsSubscriber
    arguments: ['@state']
    tags:
      - { name: event_subscriber }
572
573
  entity.query:
    class: Drupal\Core\Entity\Query\QueryFactory
574
    arguments: ['@entity.manager']
575
576
577
578
    calls:
      - [setContainer, ['@service_container']]
  entity.query.config:
    class: Drupal\Core\Config\Entity\Query\QueryFactory
579
    arguments: ['@config.storage', '@config.factory']
580
581
582
  entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\QueryFactory
    arguments: ['@database']
583
584
    tags:
      - { name: backend_overridable }
585
586
587
  entity.query.keyvalue:
    class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
    arguments: ['@keyvalue']
588
589
  router.dumper:
    class: Drupal\Core\Routing\MatcherDumper
590
    arguments: ['@database', '@state']
591
592
    tags:
      - { name: backend_overridable }
593
594
595
  router.builder_indicator:
    class: Drupal\Core\Routing\RouteBuilderIndicator
    arguments: ['@state']
596
597
  router.builder:
    class: Drupal\Core\Routing\RouteBuilder
598
    arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@access_manager.check_provider', '@router.builder_indicator']
599
600
  router.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\RouterRebuildSubscriber
601
602
603
604
605
606
    arguments: ['@router.builder']
    tags:
      - { name: event_subscriber }
  menu.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\MenuRouterRebuildSubscriber
    arguments: ['@lock', '@plugin.manager.menu.link']
607
608
    tags:
      - { name: event_subscriber }
609
610
  path.alias_storage:
    class: Drupal\Core\Path\AliasStorage
611
    arguments: ['@database', '@module_handler']
612
613
    tags:
      - { name: backend_overridable }
614
615
  path.matcher:
    class: Drupal\Core\Path\PathMatcher
616
    arguments: ['@config.factory', '@current_route_match']
617
618
  path.validator:
    class: Drupal\Core\Path\PathValidator
619
    arguments: ['@router', '@router.no_access_checks', '@current_user', '@path_processor_manager']
620

621
622
623
624
625
626
627
628
629
# 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]
630
631
632
633
634
635
636
  accept_header_matcher:
    class: Drupal\Core\Routing\AcceptHeaderMatcher
    arguments: ['@content_negotiation']
    tags:
      - { name: route_filter }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
637
638
639
640
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
641
642
    tags:
      - { name: service_collector, tag: paramconverter, call: addConverter }
643
644
645
646
647
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
648
649
650
651
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
652
    arguments: ['@entity.manager']
653
654
655
656
657
658
  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']
659
660
661
662
663
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
664
665
  resolver_manager.entity:
    class: Drupal\Core\Entity\EntityResolverManager
666
    arguments: ['@entity.manager', '@class_resolver']
667
668
669
670
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
671
    arguments: ['@resolver_manager.entity']
672
673
  ajax_subscriber:
    class: Drupal\Core\EventSubscriber\AjaxSubscriber
674
675
    tags:
      - { name: event_subscriber }
676
677
678
679
680
681
682
683
684
685
  route_enhancer.lazy_collector:
    class: Drupal\Core\Routing\LazyRouteEnhancer
    tags:
      - { name: non_lazy_route_enhancer, priority: 5000 }
    parent: container.trait
  route_enhancer_subscriber:
    class: Drupal\Core\EventSubscriber\RouteEnhancerSubscriber
    arguments: ['@route_enhancer.lazy_collector']
    tags:
      - { name: event_subscriber }
686
687
688
689
690
691
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
692
693
694
695
  route_enhancer.authentication:
    class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
    tags:
      - { name: route_enhancer, priority: 1000 }
696
    arguments: ['@authentication', '@current_user']
697
698
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
699
    tags:
700
      - { name: route_enhancer, priority: 20 }
701
702
703
704
705
  route_content_controller_subscriber:
    class: Drupal\Core\EventSubscriber\ContentControllerSubscriber
    arguments: ['@content_negotiation']
    tags:
      - { name: event_subscriber }
706
707
708
709
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
710
711
712
713
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
714
715
716
717
718
719
720
721
722

  # Main content view subscriber plus the renderers it uses.
  main_content_view_subscriber:
    class: Drupal\Core\EventSubscriber\MainContentViewSubscriber
    arguments: ['@class_resolver', '@current_route_match', '%main_content_renderers%']
    tags:
      - { name: event_subscriber }
  main_content_renderer.html:
    class: Drupal\Core\Render\MainContent\HtmlRenderer
723
    arguments: ['@title_resolver', '@plugin.manager.display_variant', '@event_dispatcher', '@module_handler', '@renderer']
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
    tags:
      - { name: render.main_content_renderer, format: html }
  main_content_renderer.ajax:
    class: Drupal\Core\Render\MainContent\AjaxRenderer
    arguments: ['@element_info']
    tags:
      - { name: render.main_content_renderer, format: drupal_ajax }
  main_content_renderer.dialog:
    class: Drupal\Core\Render\MainContent\DialogRenderer
    arguments: ['@title_resolver']
    tags:
      - { name: render.main_content_renderer, format: drupal_dialog }
  main_content_renderer.modal:
    class: Drupal\Core\Render\MainContent\ModalRenderer
    arguments: ['@title_resolver']
    tags:
      - { name: render.main_content_renderer, format: drupal_modal }
741
742
743
744
745
746
  controller.form:
    class: Drupal\Core\Controller\HtmlFormController
    arguments: ['@controller_resolver', '@form_builder', '@class_resolver']
  controller.entity_form:
    class: Drupal\Core\Entity\HtmlEntityFormController
    arguments: ['@controller_resolver', '@form_builder', '@entity.manager']
747
748
749
750
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
751
    arguments: ['@router', '@router.request_context', NULL, '@request_stack']
752
753
754
755
756
757
  content_negotiation:
    class: Drupal\Core\ContentNegotiation
  view_subscriber:
    class: Drupal\Core\EventSubscriber\ViewSubscriber
    tags:
      - { name: event_subscriber }
758
    arguments: ['@content_negotiation', '@title_resolver']
759
760
  bare_html_page_renderer:
    class: Drupal\Core\Render\BareHtmlPageRenderer
761
    arguments: ['@renderer']
762
763
764
765
766
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
767
    arguments: ['@private_key', '@session_manager.metadata_bag']
768
769
  access_arguments_resolver_factory:
    class: Drupal\Core\Access\AccessArgumentsResolverFactory
770
771
  access_manager:
    class: Drupal\Core\Access\AccessManager
772
773
774
    arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user', '@access_manager.check_provider']
  access_manager.check_provider:
    class: Drupal\Core\Access\CheckProvider
775
776
    calls:
      - [setContainer, ['@service_container']]
777
    public: false
778
779
780
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
781
      - { name: access_check, applies_to: _access }
782
783
784
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
785
      - { name: access_check, applies_to: _entity_access }
786
787
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
788
    arguments: ['@entity.manager']
789
    tags:
790
      - { name: access_check, applies_to: _entity_create_access }
791
792
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
793
    arguments: ['@theme_handler']
794
    tags:
795
      - { name: access_check, applies_to: _access_theme }
796
797
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
798
    arguments: ['@controller_resolver', '@access_arguments_resolver_factory']
799
    tags:
800
      - { name: access_check, applies_to: _custom_access }
801
802
803
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
804
      - { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
805
    arguments: ['@csrf_token']
806
807
808
  maintenance_mode:
    class: Drupal\Core\Site\MaintenanceMode
    arguments: ['@state', '@current_user']
809
810
  maintenance_mode_subscriber:
    class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
811
    arguments: ['@maintenance_mode', '@config.factory', '@string_translation', '@url_generator', '@current_user', '@bare_html_page_renderer']
812
813
814
815
816
817
    tags:
      - { name: event_subscriber }
  path_subscriber:
    class: Drupal\Core\EventSubscriber\PathSubscriber
    tags:
      - { name: event_subscriber }
818
    arguments: ['@path.alias_manager', '@path_processor_manager']
819
820
821
822
  finish_response_subscriber:
    class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
    tags:
      - { name: event_subscriber }
823
    arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy']
824
825
826
827
828
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@url_generator']
    tags:
      - { name: event_subscriber }
829
830
831
832
833
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
834
835
836
837
838
839
840
841
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
842
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
843
844
845
846
847
848
849
850
  exception.default_json:
    class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
    tags:
      - { name: event_subscriber }
  exception.default_html:
    class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
851
    arguments: ['@http_kernel', '@logger.channel.php']
852
853
854
855
  exception.default:
    class: Drupal\Core\EventSubscriber\DefaultExceptionSubscriber
    tags:
      - { name: event_subscriber }
856
    arguments: ['@config.factory', '@bare_html_page_renderer']
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
  exception.logger:
    class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@logger.factory']
  exception.custom_page_json:
    class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@path.alias_manager', '@http_kernel']
  exception.custom_page_html:
    class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@path.alias_manager', '@http_kernel', '@logger.channel.php']
  exception.fast_404_html:
    class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@http_kernel']
  exception.test_site:
    class: Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
879
880
    tags:
      - { name: event_subscriber }
881
882
883
884
  exception.enforced_form_response:
    class: Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber
    tags:
      - { name: event_subscriber }
885
886
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
887
888
    tags:
      - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
889
890
  path_processor_manager:
    class: Drupal\Core\PathProcessor\PathProcessorManager
891
892
893
    tags:
      - { name: service_collector, tag: path_processor_inbound, call: addInbound }
      - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
894
895
896
897
898
899
900
901
  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 }
902
      - { name: path_processor_outbound, priority: 200 }
903
    arguments: ['@config.factory']
904
905
906
  route_processor_current:
    class: Drupal\Core\RouteProcessor\RouteProcessorCurrent
    arguments: ['@current_route_match']
907
    tags:
908
      - { name: route_processor_outbound, priority: 200 }
909
910
911
912
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
913
      - { name: path_processor_outbound, priority: 300 }
914
    arguments: ['@path.alias_manager']
915
  route_processor_csrf:
916
917
918
919
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
920
  transliteration:
921
    class: Drupal\Core\Transliteration\PhpTransliteration
922
923
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
924
    arguments: ['@database', '@request_stack']
925
926
    tags:
      - { name: backend_overridable }
927
928
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
929
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation']
930
931
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
932
    parent: default_plugin_manager
933
934
935
  plugin.manager.element_info:
    class: Drupal\Core\Render\ElementInfoManager
    parent: default_plugin_manager
936
937
938
939
940
941
942
943
944
945
946
947
  stream_wrapper_manager:
    class: Drupal\Core\StreamWrapper\StreamWrapperManager
    calls:
      - [setContainer, ['@service_container']]
  stream_wrapper.public:
    class: Drupal\Core\StreamWrapper\PublicStream
    tags:
      - { name: stream_wrapper, scheme: public }
  stream_wrapper.temporary:
    class: Drupal\Core\StreamWrapper\TemporaryStream
    tags:
      - { name: stream_wrapper, scheme: temporary }
948
949
950
951
952
953
954
955
956
957
958
  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:
959
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
960
961
    arguments: ['@config.factory']
    parent: default_plugin_manager
962
963
  image.toolkit.operation.manager:
    class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
964
    arguments: ['@logger.channel.image']
965
    parent: default_plugin_manager
966
967
  image.factory:
    class: Drupal\Core\Image\ImageFactory
968
    arguments: ['@image.toolkit.manager']
969
970
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
971
    arguments: ['@module_handler']
972
973
    tags:
      - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
974
975
  token:
    class: Drupal\Core\Utility\Token
976
    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
977
  batch.storage:
978
    class: Drupal\Core\Batch\BatchStorage
979
    arguments: ['@database', '@session_manager', '@csrf_token']
980
981
    tags:
      - { name: backend_overridable }
982
983
  replica_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
984
985
    tags:
      - {name: event_subscriber}
986
987
988
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
989
990
  date.formatter:
    class: Drupal\Core\Datetime\DateFormatter
991
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
  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
1046
1047
  theme.manager:
    class: Drupal\Core\Theme\ThemeManager
1048
    arguments: ['@app.root', '@theme.registry', '@theme.negotiator', '@theme.initialization', '@request_stack', '@module_handler']
1049
1050
  theme.initialization:
    class: Drupal\Core\Theme\ThemeInitialization
1051
    arguments: ['@app.root', '@theme_handler', '@state']
1052
1053
  theme.registry:
    class: Drupal\Core\Theme\Registry
1054
    arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler']
1055
1056
    tags:
      - { name: needs_destruction }
1057
1058
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
1059
1060
    tags:
      - { name: service_collector, tag: authentication_provider, call: addProvider }
1061
1062
1063
1064
1065
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@authentication']
1066
1067
1068
  account_switcher:
    class: Drupal\Core\Session\AccountSwitcher
    arguments: ['@current_user', '@session_manager']
1069
  current_user:
1070
    class: Drupal\Core\Session\AccountProxy