core.services.yml 28.7 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
42
43
44
45
46
47
48
  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]
  cache.cache:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [cache]
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
57
58
59
60
61
62
  cache.field:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [field]
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  cache.menu:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [menu]
  cache.page:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [page]
  cache.path:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [path]
  config.cachedstorage.storage:
    class: Drupal\Core\Config\FileStorage
    factory_class: Drupal\Core\Config\FileStorageFactory
    factory_method: getActive
88
89
  config.manager:
    class: Drupal\Core\Config\ConfigManager
90
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage']
91
92
93
94
95
96
  config.storage:
    class: Drupal\Core\Config\CachedStorage
    arguments: ['@config.cachedstorage.storage', '@cache.config']
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
97
98
      - { name: event_subscriber }
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
99
100
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
101
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
102
103
104
105
106
107
108
109
110
  config.storage.staging:
    class: Drupal\Core\Config\FileStorage
    factory_class: Drupal\Core\Config\FileStorageFactory
    factory_method: getStaging
  config.storage.snapshot:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', config_snapshot]
  config.storage.schema:
    class: Drupal\Core\Config\Schema\SchemaStorage
111
    arguments: ['@config.storage']
112
113
  config.storage.installer:
    class: Drupal\Core\Config\InstallStorage
114
115
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
116
    arguments: ['@config.storage', '@config.storage.schema', '@cache.config']
117
118
119
  cron:
    class: Drupal\Core\Cron
    arguments: ['@module_handler', '@lock', '@queue', '@state']
120
121
122
123
124
  database:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [default]
125
126
127
128
  form_builder:
    class: Drupal\Core\Form\FormBuilder
    arguments: ['@module_handler', '@keyvalue.expirable', '@event_dispatcher', '@url_generator', '@string_translation', '@?csrf_token', '@?http_kernel']
    calls:
129
      - [setRequest, ['@?request=']]
130
131
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
132
    arguments: ['@service_container', '@settings']
133
134
135
136
137
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
    arguments: ['@database']
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
138
    arguments: ['@service_container', '@settings']
139
140
141
142
143
144
145
146
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
    tags:
      - { name: needs_destruction }
    arguments: ['@database']
  settings:
    class: Drupal\Component\Utility\Settings
    factory_class: Drupal\Component\Utility\Settings
147
    factory_method: getInstance
148
  state:
149
150
    class: Drupal\Core\KeyValueStore\State
    arguments: ['@keyvalue']
151
152
153
154
155
156
157
158
159
160
161
162
  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 }
163
    arguments: [path_alias_whitelist, '@cache.cache', '@lock', '@state', '@database']
164
165
  path.alias_manager:
    class: Drupal\Core\Path\AliasManager
166
    arguments: ['@path.crud', '@path.alias_whitelist', '@language_manager']
167
168
169
170
171
172
173
174
  http_client_simpletest_subscriber:
    class: Drupal\Core\Http\Plugin\SimpletestHttpRequestSubscriber
  http_default_client:
    class: Guzzle\Http\Client
    arguments: [null, { curl.CURLOPT_TIMEOUT: 30, curl.CURLOPT_MAXREDIRS: 3 }]
    calls:
      - [addSubscriber, ['@http_client_simpletest_subscriber']]
      - [setUserAgent, ['Drupal (+http://drupal.org/)']]
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
  theme.negotiator:
    class: Drupal\Core\Theme\ThemeNegotiator
    arguments: ['@access_check.theme']
    calls:
      - [setRequest, ['@request']]
  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 }
190
191
192
193
194
  container.namespaces:
    class: ArrayObject
    arguments: [ '%container.namespaces%' ]
    tags:
      - { name: persist }
195
196
197
  default_plugin_manager:
    abstract: true
    arguments: ['@container.namespaces', '@cache.cache', '@language_manager', '@module_handler']
198
199
200
  module_handler:
    class: Drupal\Core\Extension\CachedModuleHandler
    arguments: ['%container.modules%', '@state', '@cache.bootstrap']
201
202
  theme_handler:
    class: Drupal\Core\Extension\ThemeHandler
203
    arguments: ['@config.factory', '@module_handler', '@cache.cache', '@info_parser', '@config.installer', '@router.builder']
204
  entity.manager:
205
    class: Drupal\Core\Entity\EntityManager
206
    arguments: ['@container.namespaces', '@service_container', '@module_handler', '@cache.cache', '@language_manager', '@string_translation']
207
208
    tags:
      - { name: plugin_manager_cache_clear }
209
210
211
  entity.form_builder:
    class: Drupal\Core\Entity\EntityFormBuilder
    arguments: ['@entity.manager', '@form_builder']
212
213
214
215
216
217
218
219
220
  plugin.manager.field.field_type:
    class: Drupal\Core\Field\FieldTypePluginManager
    arguments: ['@container.namespaces', '@cache.field', '@language_manager', '@module_handler']
  plugin.manager.field.widget:
    class: Drupal\Core\Field\WidgetPluginManager
    arguments: ['@container.namespaces', '@cache.field', '@module_handler', '@language_manager', '@plugin.manager.field.field_type']
  plugin.manager.field.formatter:
    class: Drupal\Core\Field\FormatterPluginManager
    arguments: ['@container.namespaces', '@cache.field', '@module_handler', '@language_manager', '@plugin.manager.field.field_type']
221
222
  plugin.manager.archiver:
    class: Drupal\Core\Archiver\ArchiverManager
223
    parent: default_plugin_manager
224
225
226
  plugin.manager.action:
    class: Drupal\Core\Action\ActionManager
    arguments: ['@container.namespaces']
227
228
  plugin.manager.menu.local_action:
    class: Drupal\Core\Menu\LocalActionManager
229
    arguments: ['@controller_resolver', '@request', '@router.route_provider', '@module_handler', '@cache.cache', '@language_manager', '@access_manager', '@current_user']
230
231
  plugin.manager.menu.local_task:
    class: Drupal\Core\Menu\LocalTaskManager
232
    arguments: ['@controller_resolver', '@request', '@router.route_provider', '@router.builder', '@module_handler', '@cache.cache', '@language_manager', '@access_manager', '@current_user']
233
234
235
  plugin.manager.menu.contextual_link:
    class: Drupal\Core\Menu\ContextualLinkManager
    arguments: ['@controller_resolver', '@module_handler', '@cache.cache', '@language_manager', '@access_manager', '@current_user']
236
237
  plugin.cache_clearer:
    class: Drupal\Core\Plugin\CachedDiscoveryClearer
238
239
  request:
    class: Symfony\Component\HttpFoundation\Request
240
    synthetic: true
241
    synchronized: true
242
243
  request_stack:
    class: Symfony\Component\HttpFoundation\RequestStack
244
245
246
247
  event_dispatcher:
    class: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
    arguments: ['@service_container']
  controller_resolver:
248
    class: Drupal\Core\Controller\ControllerResolver
249
    arguments: ['@service_container']
250
251
252
  title_resolver:
    class: Drupal\Core\Controller\TitleResolver
    arguments: ['@controller_resolver', '@string_translation']
253
254
  http_kernel:
    class: Drupal\Core\HttpKernel
255
    arguments: ['@event_dispatcher', '@service_container', '@controller_resolver', '@request_stack']
256
257
  language_manager:
    class: Drupal\Core\Language\LanguageManager
258
259
260
261
    arguments: ['@language.default']
  language.default:
    class: Drupal\Core\Language\LanguageDefault
    arguments: ['%language.default_values%']
262
263
  string_translator.custom_strings:
    class: Drupal\Core\StringTranslation\Translator\CustomStrings
264
    arguments: ['@settings']
265
266
267
268
    tags:
      - { name: string_translator, priority: 30 }
  string_translation:
    class: Drupal\Core\StringTranslation\TranslationManager
269
270
271
    arguments: ['@language_manager']
    calls:
      - [initLanguageManager]
272
273
274
275
276
  database.slave:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [slave]
277
  typed_data_manager:
278
    class: Drupal\Core\TypedData\TypedDataManager
279
    parent: default_plugin_manager
280
281
    calls:
      - [setValidationConstraintManager, ['@validation.constraint']]
282
283
    tags:
      - { name: plugin_manager_cache_clear }
284
285
  validation.constraint:
    class: Drupal\Core\Validation\ConstraintManager
286
    parent: default_plugin_manager
287
288
  lock:
    class: Drupal\Core\Lock\DatabaseLockBackend
289
    arguments: ['@database']
290
291
292
293
294
295
296
  user.tempstore:
    class: Drupal\user\TempStoreFactory
    arguments: ['@database', '@lock']
  router.request_context:
    class: Symfony\Component\Routing\RequestContext
    calls:
      - [fromRequest, ['@request']]
297
298
299
300
  router.admin_context:
    class: Drupal\Core\Routing\AdminContext
    calls:
      - [setRequest, ['@?request=']]
301
302
  router.route_provider:
    class: Drupal\Core\Routing\RouteProvider
303
304
305
    arguments: ['@database', '@router.builder']
    tags:
      - { name: event_subscriber }
306
307
308
309
310
  router.route_preloader:
    class: Drupal\Core\Routing\RoutePreloader
    arguments: ['@router.route_provider', '@state', '@content_negotiation']
    tags:
      - { name: 'event_subscriber' }
311
312
313
314
315
316
317
  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']]
318
  url_generator:
319
    class: Drupal\Core\Routing\UrlGenerator
320
    arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@config.factory', '@settings']
321
322
    calls:
      - [setRequest, ['@?request']]
323
      - [setContext, ['@?router.request_context']]
324
325
  link_generator:
    class: Drupal\Core\Utility\LinkGenerator
326
    arguments: ['@url_generator', '@module_handler', '@path.alias_manager.cached']
327
328
  router.dynamic:
    class: Symfony\Cmf\Component\Routing\DynamicRouter
329
    arguments: ['@router.request_context', '@router.matcher', '@url_generator']
330
331
332
333
334
  router:
    class: Symfony\Cmf\Component\Routing\ChainRouter
    calls:
      - [setContext, ['@router.request_context']]
      - [add, ['@router.dynamic']]
335
336
337
338
339
  router.path_roots_subscriber:
    class: Drupal\Core\EventSubscriber\PathRootsSubscriber
    arguments: ['@state']
    tags:
      - { name: event_subscriber }
340
341
  entity.query:
    class: Drupal\Core\Entity\Query\QueryFactory
342
    arguments: ['@entity.manager']
343
344
345
346
    calls:
      - [setContainer, ['@service_container']]
  entity.query.config:
    class: Drupal\Core\Config\Entity\Query\QueryFactory
347
    arguments: ['@config.storage', '@config.factory']
348
349
350
  entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\QueryFactory
    arguments: ['@database']
351
352
353
354
355
  router.dumper:
    class: Drupal\Core\Routing\MatcherDumper
    arguments: ['@database']
  router.builder:
    class: Drupal\Core\Routing\RouteBuilder
356
357
358
    arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@state']
  router.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\RouterRebuildSubscriber
359
    arguments: ['@router.builder', '@lock']
360
361
    tags:
      - { name: event_subscriber }
362
363
364
365
366
  path.alias_manager.cached:
    class: Drupal\Core\CacheDecorator\AliasManagerCacheDecorator
    arguments: ['@path.alias_manager', '@cache.path']
  path.crud:
    class: Drupal\Core\Path\Path
367
    arguments: ['@database', '@module_handler']
368
369
370
371
372
373
374
375
376
# 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]
377
378
379
380
381
382
383
  accept_header_matcher:
    class: Drupal\Core\Routing\AcceptHeaderMatcher
    arguments: ['@content_negotiation']
    tags:
      - { name: route_filter }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
384
385
386
387
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
388
389
390
391
392
393
394
    calls:
      - [setContainer, ['@service_container']]
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
395
396
397
398
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
399
    arguments: ['@entity.manager']
400
401
402
403
404
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
405
406
407
408
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
409
    arguments: ['@entity.manager']
410
411
412
413
414
  reverse_proxy_subscriber:
    class: Drupal\Core\EventSubscriber\ReverseProxySubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@settings']
415
416
417
418
  ajax_response_subscriber:
    class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
    tags:
      - { name: event_subscriber }
419
420
421
422
423
424
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
425
426
  route_enhancer.authentication:
    class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
427
428
    calls:
      - [setContainer, ['@service_container']]
429
430
431
    tags:
      - { name: route_enhancer, priority: 1000 }
    arguments: ['@authentication']
432
433
  route_enhancer.content_controller:
    class: Drupal\Core\Routing\Enhancer\ContentControllerEnhancer
434
435
436
    arguments: ['@content_negotiation']
    tags:
      - { name: route_enhancer, priority: 30 }
437
438
439
  route_enhancer.ajax:
    class: Drupal\Core\Routing\Enhancer\AjaxEnhancer
    arguments: ['@content_negotiation']
440
    tags:
441
442
      - { name: route_enhancer, priority: 15 }
      - { name: legacy_route_enhancer, priority: 15 }
443
444
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
445
    arguments: ['@controller_resolver', '@entity.manager', '@form_builder']
446
    tags:
447
      - { name: route_enhancer, priority: 20 }
448
449
  route_enhancer.form:
    class: Drupal\Core\Routing\Enhancer\FormEnhancer
450
    arguments: ['@service_container', '@controller_resolver', '@form_builder']
451
452
    tags:
      - { name: route_enhancer, priority: 10 }
453
454
455
456
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
457
458
459
460
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
461
462
  controller.page:
    class: Drupal\Core\Controller\HtmlPageController
463
464
465
    arguments: ['@controller_resolver', '@string_translation', '@title_resolver']
  controller.ajax:
    class: Drupal\Core\Controller\AjaxController
466
    arguments: ['@controller_resolver', '@ajax_response_renderer']
467
468
469
  controller.entityform:
    class: Drupal\Core\Entity\HtmlEntityFormController
    arguments: ['@controller_resolver', '@service_container', '@entity.manager']
470
471
  controller.dialog:
    class: Drupal\Core\Controller\DialogController
472
    arguments: ['@controller_resolver', '@title_resolver']
473
474
  ajax_response_renderer:
    class: Drupal\Core\Ajax\AjaxResponseRenderer
475
476
477
478
479
480
481
482
483
484
485
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
    arguments: ['@router']
  content_negotiation:
    class: Drupal\Core\ContentNegotiation
  view_subscriber:
    class: Drupal\Core\EventSubscriber\ViewSubscriber
    tags:
      - { name: event_subscriber }
486
    arguments: ['@content_negotiation', '@title_resolver', '@ajax_response_renderer']
487
488
489
490
  html_view_subscriber:
    class: Drupal\Core\EventSubscriber\HtmlViewSubscriber
    tags:
      - { name: event_subscriber }
491
492
493
494
    arguments: ['@html_fragment_renderer', '@html_page_renderer']
  html_fragment_renderer:
    class: Drupal\Core\Page\DefaultHtmlFragmentRenderer
    arguments: ['@language_manager']
495
496
  html_page_renderer:
    class: Drupal\Core\Page\DefaultHtmlPageRenderer
497
498
499
500
501
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
502
    arguments: ['@private_key']
503
    calls:
504
      - [setCurrentUser, ['@?current_user']]
505
506
  access_manager:
    class: Drupal\Core\Access\AccessManager
507
    arguments: ['@router.route_provider', '@url_generator', '@paramconverter_manager']
508
509
    calls:
      - [setContainer, ['@service_container']]
510
      - [setRequest, ['@?request']]
511
512
  access_subscriber:
    class: Drupal\Core\EventSubscriber\AccessSubscriber
513
514
515
516
517
518
519
    arguments: ['@access_manager', '@current_user']
    calls:
      - [setCurrentUser, ['@?current_user']]
    tags:
      - { name: event_subscriber }
  access_route_subscriber:
    class: Drupal\Core\EventSubscriber\AccessRouteSubscriber
520
521
522
523
524
525
    tags:
      - { name: event_subscriber }
    arguments: ['@access_manager']
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
526
      - { name: access_check, applies_to: _access }
527
528
529
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
530
      - { name: access_check, applies_to: _entity_access }
531
532
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
533
    arguments: ['@entity.manager']
534
    tags:
535
      - { name: access_check, applies_to: _entity_create_access }
536
537
538
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
    tags:
539
      - { name: access_check, applies_to: _access_theme }
540
541
542
543
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
    arguments: ['@controller_resolver']
    tags:
544
      - { name: access_check, applies_to: _custom_access }
545
546
547
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
548
      - { name: access_check, applies_to: _csrf_token }
549
    arguments: ['@csrf_token']
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
  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
569
570
571
572
573
574
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@url_generator']
    tags:
      - { name: event_subscriber }
    scope: request
575
576
577
578
579
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
580
581
582
583
584
585
586
587
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
588
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
589
  exception_controller:
590
    class: Drupal\Core\Controller\ExceptionController
591
    arguments: ['@content_negotiation', '@string_translation', '@title_resolver', '@html_page_renderer', '@html_fragment_renderer']
592
593
594
    calls:
      - [setContainer, ['@service_container']]
  exception_listener:
595
    class: Drupal\Core\EventSubscriber\ExceptionListener
596
597
598
    tags:
      - { name: event_subscriber }
    arguments: [['@exception_controller', execute]]
599
600
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
601
602
603
604
605
606
607
608
609
610
  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 }
611
      - { name: path_processor_outbound, priority: 200 }
612
613
614
615
616
    arguments: ['@config.factory']
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
617
      - { name: path_processor_outbound, priority: 300 }
618
    arguments: ['@path.alias_manager']
619
  route_processor_csrf:
620
621
622
623
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
624
625
626
627
  transliteration:
    class: Drupal\Core\Transliteration\PHPTransliteration
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
628
    arguments: ['@database', '@request']
629
630
631
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
    arguments: ['@container.namespaces', '@cache.cache', '@language_manager', '@module_handler', '@config.factory']
632
633
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
634
    parent: default_plugin_manager
635
636
637
638
639
640
641
642
643
644
645
  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:
646
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
647
    arguments: ['@container.namespaces', '@cache.cache', '@language_manager', '@config.factory', '@module_handler']
648
649
  image.factory:
    class: Drupal\Core\Image\ImageFactory
650
    arguments: ['@image.toolkit.manager']
651
652
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
653
    arguments: ['@module_handler']
654
655
656
  token:
    class: Drupal\Core\Utility\Token
    arguments: ['@module_handler']
657
  batch.storage:
658
    class: Drupal\Core\Batch\BatchStorage
659
    arguments: ['@database']
660
661
662
663
  slave_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\SlaveDatabaseIgnoreSubscriber
    tags:
      - {name: event_subscriber}
664
665
666
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
667
668
  date:
    class: Drupal\Core\Datetime\Date
669
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
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
721
722
723
  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
724
725
726
727
728
  theme.registry:
    class: Drupal\Core\Theme\Registry
    arguments: ['@cache.cache', '@lock', '@module_handler']
    tags:
      - { name: needs_destruction }
729
730
731
732
733
734
735
736
737
738
739
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
  authentication.cookie:
    class: Drupal\Core\Authentication\Provider\Cookie
    tags:
      - { name: authentication_provider, priority: 0 }
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@authentication']
740
741
742
743
744
  current_user:
    class: Drupal\Core\Session\AccountInterface
    factory_method: authenticate
    factory_service: authentication
    arguments: ['@request']
745
    synchronized: true
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
  info_parser:
    class: Drupal\Core\Extension\InfoParser