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