core.services.yml 32.1 KB
Newer Older
1
2
3
4
5
6
services:
  cache_factory:
    class: Drupal\Core\Cache\CacheFactory
    arguments: ['@settings']
    calls:
      - [setContainer, ['@service_container']]
7
8
9
10
11
  cache_contexts:
    class: Drupal\Core\Cache\CacheContexts
    arguments: ['@service_container', '%cache_contexts%' ]
  cache_context.url:
    class: Drupal\Core\Cache\UrlCacheContext
12
    arguments: ['@request_stack']
13
14
15
16
17
18
19
20
21
    tags:
      - { name: cache.context}
  cache_context.language:
    class: Drupal\Core\Cache\LanguageCacheContext
    arguments: ['@language_manager']
    tags:
      - { name: cache.context}
  cache_context.theme:
    class: Drupal\Core\Cache\ThemeCacheContext
22
    arguments: ['@request_stack', '@theme.negotiator']
23
24
    tags:
      - { name: cache.context}
25
26
27
28
  cache_context.timezone:
    class: Drupal\Core\Cache\TimeZoneCacheContext
    tags:
      - { name: cache.context}
29
30
31
  cache.backend.database:
    class: Drupal\Core\Cache\DatabaseBackendFactory
    arguments: ['@database']
32
33
  cache.backend.apcu:
    class: Drupal\Core\Cache\ApcuBackendFactory
34
35
  cache.backend.php:
    class: Drupal\Core\Cache\PhpBackendFactory
36
37
38
39
  cache.backend.memory:
    class: Drupal\Core\Cache\MemoryBackendFactory
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory
40
41
42
43
44
45
46
  cache.bootstrap:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [bootstrap]
47
  cache.default:
48
49
50
51
52
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
53
    arguments: [default]
54
55
56
57
58
59
60
  cache.entity:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [entity]
61
  cache.render:
62
63
64
65
66
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
67
68
    arguments: [render]
  cache.data:
69
70
71
72
73
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
74
    arguments: [data]
75
76
77
78
79
80
81
  cache.discovery:
    class: Drupal\Core\Cache\CacheBackendInterface
    tags:
      - { name: cache.bin }
    factory_method: get
    factory_service: cache_factory
    arguments: [discovery]
82
83
  config.manager:
    class: Drupal\Core\Config\ConfigManager
84
    arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
85
86
87
  config.factory:
    class: Drupal\Core\Config\ConfigFactory
    tags:
88
      - { name: event_subscriber }
89
      - { name: service_collector, tag: 'config.factory.override', call: addOverride }
90
    arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
91
92
  config.installer:
    class: Drupal\Core\Config\ConfigInstaller
93
    arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
94
95
96
97
98
99
100
101
102
  config.storage:
    alias: config.storage.active
  config.storage.active:
    class: Drupal\Core\Config\DatabaseStorage
    arguments: ['@database', 'config']
  config.storage.file:
    class: Drupal\Core\Config\FileStorage
    factory_class: Drupal\Core\Config\FileStorageFactory
    factory_method: getActive
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:
111
112
    class: Drupal\Core\Config\ExtensionInstallStorage
    arguments: ['@config.storage', 'config/schema']
113
114
  config.storage.installer:
    class: Drupal\Core\Config\InstallStorage
115
116
  config.typed:
    class: Drupal\Core\Config\TypedConfigManager
117
    arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery']
118
119
  cron:
    class: Drupal\Core\Cron
120
    arguments: ['@module_handler', '@lock', '@queue', '@state', '@current_user', '@session_manager']
121
122
123
  diff.formatter:
    class: Drupal\Core\Diff\DiffFormatter
    arguments: ['@config.factory']
124
125
126
127
128
  database:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [default]
129
130
  form_builder:
    class: Drupal\Core\Form\FormBuilder
131
    arguments: ['@form_validator', '@form_submitter', '@module_handler', '@keyvalue.expirable', '@event_dispatcher', '@request_stack', '@class_resolver', '@?csrf_token', '@?http_kernel']
132
133
134
  form_validator:
    class: Drupal\Core\Form\FormValidator
    arguments: ['@request_stack', '@string_translation', '@csrf_token']
135
136
137
  form_submitter:
    class: Drupal\Core\Form\FormSubmitter
    arguments: ['@request_stack', '@url_generator']
138
139
  keyvalue:
    class: Drupal\Core\KeyValueStore\KeyValueFactory
140
    arguments: ['@service_container', '@settings']
141
142
  keyvalue.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
143
    arguments: ['@serialization.phpserialize', '@database']
144
145
  keyvalue.expirable:
    class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
146
    arguments: ['@service_container', '@settings']
147
148
  keyvalue.expirable.database:
    class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
149
    arguments: ['@serialization.phpserialize', '@database']
150
151
    tags:
      - { name: needs_destruction }
152
153
154
155
156
157
158
159
160
161
162
163
  logger.factory:
    class: Drupal\Core\Logger\LoggerChannelFactory
    parent: container.trait
    tags:
      - { name: service_collector, tag: logger, call: addLogger }
  logger.channel.default:
    class: Drupal\Core\Logger\LoggerChannel
    factory_method: get
    factory_service: logger.factory
    arguments: ['system']
  logger.log_message_parser:
    class: Drupal\Core\Logger\LogMessageParser
164
165
166
167
168
169
170
171

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

172
  settings:
173
174
    class: Drupal\Core\Site\Settings
    factory_class: Drupal\Core\Site\Settings
175
    factory_method: getInstance
176
  state:
177
    class: Drupal\Core\State\State
178
    arguments: ['@keyvalue']
179
180
181
182
183
184
185
186
187
188
189
190
  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 }
191
    arguments: [path_alias_whitelist, '@cache.default', '@lock', '@state', '@path.alias_storage']
192
193
  path.alias_manager:
    class: Drupal\Core\Path\AliasManager
194
    arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
195
  http_client:
196
    class: Drupal\Core\Http\Client
197
198
    tags:
      - { name: service_collector, tag: http_client_subscriber, call: attach }
199
200
  theme.negotiator:
    class: Drupal\Core\Theme\ThemeNegotiator
201
    arguments: ['@access_check.theme', '@request_stack']
202
203
    tags:
      - { name: service_collector, tag: theme_negotiator, call: addNegotiator }
204
205
206
207
208
209
210
211
212
213
  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 }
214
215
216
217
218
  container.namespaces:
    class: ArrayObject
    arguments: [ '%container.namespaces%' ]
    tags:
      - { name: persist }
219
220
221
222
  container.trait:
    abstract: true
    calls:
      - [setContainer, ['@service_container']]
223
224
  default_plugin_manager:
    abstract: true
225
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler']
226
  module_handler:
227
228
    class: Drupal\Core\Extension\ModuleHandler
    arguments: ['%container.modules%', '@cache.bootstrap']
229
230
  theme_handler:
    class: Drupal\Core\Extension\ThemeHandler
231
    arguments: ['@config.factory', '@module_handler', '@state', '@info_parser', '@config.installer', '@router.builder']
232
  entity.manager:
233
    class: Drupal\Core\Entity\EntityManager
234
    arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@language_manager', '@string_translation', '@class_resolver', '@typed_data_manager']
235
    parent: container.trait
236
237
    tags:
      - { name: plugin_manager_cache_clear }
238
239
240
  entity.form_builder:
    class: Drupal\Core\Entity\EntityFormBuilder
    arguments: ['@entity.manager', '@form_builder']
241
242
  plugin.manager.field.field_type:
    class: Drupal\Core\Field\FieldTypePluginManager
243
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler']
244
245
  plugin.manager.field.widget:
    class: Drupal\Core\Field\WidgetPluginManager
246
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@language_manager', '@plugin.manager.field.field_type']
247
248
  plugin.manager.field.formatter:
    class: Drupal\Core\Field\FormatterPluginManager
249
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@language_manager', '@plugin.manager.field.field_type']
250
251
  plugin.manager.archiver:
    class: Drupal\Core\Archiver\ArchiverManager
252
    parent: default_plugin_manager
253
254
  plugin.manager.action:
    class: Drupal\Core\Action\ActionManager
255
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler']
256
257
  plugin.manager.menu.local_action:
    class: Drupal\Core\Menu\LocalActionManager
258
    arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
259
260
  plugin.manager.menu.local_task:
    class: Drupal\Core\Menu\LocalTaskManager
261
    arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@router.builder', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
262
263
  plugin.manager.menu.contextual_link:
    class: Drupal\Core\Menu\ContextualLinkManager
264
    arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
265
266
  plugin.cache_clearer:
    class: Drupal\Core\Plugin\CachedDiscoveryClearer
267
268
  request:
    class: Symfony\Component\HttpFoundation\Request
269
    synthetic: true
270
    synchronized: true
271
272
  request_stack:
    class: Symfony\Component\HttpFoundation\RequestStack
273
274
    tags:
      - { name: persist }
275
276
277
278
  event_dispatcher:
    class: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
    arguments: ['@service_container']
  controller_resolver:
279
    class: Drupal\Core\Controller\ControllerResolver
280
281
282
283
284
    arguments: ['@class_resolver', '@logger.channel.default']
  class_resolver:
    class: Drupal\Core\DependencyInjection\ClassResolver
    calls:
      - [setContainer, ['@service_container']]
285
286
287
  title_resolver:
    class: Drupal\Core\Controller\TitleResolver
    arguments: ['@controller_resolver', '@string_translation']
288
289
  http_kernel:
    class: Drupal\Core\HttpKernel
290
291
    arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
    parent: container.trait
292
293
  language_manager:
    class: Drupal\Core\Language\LanguageManager
294
295
296
297
    arguments: ['@language.default']
  language.default:
    class: Drupal\Core\Language\LanguageDefault
    arguments: ['%language.default_values%']
298
299
  string_translator.custom_strings:
    class: Drupal\Core\StringTranslation\Translator\CustomStrings
300
    arguments: ['@settings']
301
302
303
304
    tags:
      - { name: string_translator, priority: 30 }
  string_translation:
    class: Drupal\Core\StringTranslation\TranslationManager
305
306
307
    arguments: ['@language_manager']
    calls:
      - [initLanguageManager]
308
309
    tags:
      - { name: service_collector, tag: string_translator, call: addTranslator }
310
311
312
313
314
  database.slave:
    class: Drupal\Core\Database\Connection
    factory_class: Drupal\Core\Database\Database
    factory_method: getConnection
    arguments: [slave]
315
  typed_data_manager:
316
    class: Drupal\Core\TypedData\TypedDataManager
317
    parent: default_plugin_manager
318
319
    calls:
      - [setValidationConstraintManager, ['@validation.constraint']]
320
321
    tags:
      - { name: plugin_manager_cache_clear }
322
323
  validation.constraint:
    class: Drupal\Core\Validation\ConstraintManager
324
    parent: default_plugin_manager
325
326
  lock:
    class: Drupal\Core\Lock\DatabaseLockBackend
327
    arguments: ['@database']
328
329
  router.request_context:
    class: Symfony\Component\Routing\RequestContext
330
331
    tags:
      - { name: persist }
332
333
  router.admin_context:
    class: Drupal\Core\Routing\AdminContext
334
    arguments: ['@request_stack']
335
336
  router.route_provider:
    class: Drupal\Core\Routing\RouteProvider
337
    arguments: ['@database', '@router.builder', '@state']
338
339
    tags:
      - { name: event_subscriber }
340
341
342
343
344
  router.route_preloader:
    class: Drupal\Core\Routing\RoutePreloader
    arguments: ['@router.route_provider', '@state', '@content_negotiation']
    tags:
      - { name: 'event_subscriber' }
345
346
347
348
349
350
351
  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']]
352
353
    tags:
      - { name: service_collector, tag: route_filter, call: addRouteFilter }
354
  url_generator:
355
    class: Drupal\Core\Routing\UrlGenerator
356
    arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@config.factory', '@settings', '@logger.channel.default']
357
358
    calls:
      - [setRequest, ['@?request']]
359
      - [setContext, ['@?router.request_context']]
360
361
  link_generator:
    class: Drupal\Core\Utility\LinkGenerator
362
    arguments: ['@url_generator', '@module_handler']
363
364
  router.dynamic:
    class: Symfony\Cmf\Component\Routing\DynamicRouter
365
    arguments: ['@router.request_context', '@router.matcher', '@url_generator']
366
367
    tags:
      - { name: service_collector, tag: route_enhancer, call: addRouteEnhancer }
368
369
370
371
372
  router:
    class: Symfony\Cmf\Component\Routing\ChainRouter
    calls:
      - [setContext, ['@router.request_context']]
      - [add, ['@router.dynamic']]
373
374
375
376
377
  router.path_roots_subscriber:
    class: Drupal\Core\EventSubscriber\PathRootsSubscriber
    arguments: ['@state']
    tags:
      - { name: event_subscriber }
378
379
  entity.query:
    class: Drupal\Core\Entity\Query\QueryFactory
380
    arguments: ['@entity.manager']
381
382
383
384
    calls:
      - [setContainer, ['@service_container']]
  entity.query.config:
    class: Drupal\Core\Config\Entity\Query\QueryFactory
385
    arguments: ['@config.storage', '@config.factory']
386
387
388
  entity.query.sql:
    class: Drupal\Core\Entity\Query\Sql\QueryFactory
    arguments: ['@database']
389
390
391
  entity.query.keyvalue:
    class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
    arguments: ['@keyvalue']
392
393
  router.dumper:
    class: Drupal\Core\Routing\MatcherDumper
394
    arguments: ['@database', '@state']
395
396
  router.builder:
    class: Drupal\Core\Routing\RouteBuilder
397
398
399
    arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@state']
  router.rebuild_subscriber:
    class: Drupal\Core\EventSubscriber\RouterRebuildSubscriber
400
    arguments: ['@router.builder', '@lock']
401
402
    tags:
      - { name: event_subscriber }
403
404
  path.alias_storage:
    class: Drupal\Core\Path\AliasStorage
405
    arguments: ['@database', '@module_handler']
406
407
408
409
  path.matcher:
    class: Drupal\Core\Path\PathMatcher
    arguments: ['@config.factory']

410
411
412
413
414
415
416
417
418
# 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]
419
420
421
422
423
424
425
  accept_header_matcher:
    class: Drupal\Core\Routing\AcceptHeaderMatcher
    arguments: ['@content_negotiation']
    tags:
      - { name: route_filter }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
426
427
428
429
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
430
431
    tags:
      - { name: service_collector, tag: paramconverter, call: addConverter }
432
433
434
435
436
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
437
438
439
440
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
441
    arguments: ['@entity.manager']
442
443
444
445
446
447
  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']
448
449
450
451
452
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
453
454
455
456
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
457
    arguments: ['@entity.manager']
458
459
460
461
462
  reverse_proxy_subscriber:
    class: Drupal\Core\EventSubscriber\ReverseProxySubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@settings']
463
464
465
466
  ajax_response_subscriber:
    class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
    tags:
      - { name: event_subscriber }
467
468
469
470
471
472
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
473
474
475
476
  route_enhancer.authentication:
    class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
    tags:
      - { name: route_enhancer, priority: 1000 }
477
    arguments: ['@authentication', '@current_user']
478
479
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
480
    arguments: ['@controller_resolver', '@entity.manager', '@form_builder']
481
    tags:
482
      - { name: route_enhancer, priority: 20 }
483
484
485
486
487
488
489
  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
490
    arguments: ['@class_resolver', '@controller_resolver', '@form_builder']
491
    parent: container.trait
492
    tags:
493
      - { name: event_subscriber }
494
495
496
497
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
498
499
500
501
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
502
503
  controller.page:
    class: Drupal\Core\Controller\HtmlPageController
504
    arguments: ['@controller_resolver', '@title_resolver', '@url_generator']
505
506
  controller.ajax:
    class: Drupal\Core\Controller\AjaxController
507
    arguments: ['@controller_resolver', '@ajax_response_renderer']
508
509
  controller.entityform:
    class: Drupal\Core\Entity\HtmlEntityFormController
510
    arguments: ['@class_resolver', '@controller_resolver', '@service_container', '@entity.manager']
511
512
  controller.dialog:
    class: Drupal\Core\Controller\DialogController
513
    arguments: ['@controller_resolver', '@title_resolver']
514
515
  ajax_response_renderer:
    class: Drupal\Core\Ajax\AjaxResponseRenderer
516
517
518
519
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
520
    arguments: ['@router', '@router.request_context', NULL, '@request_stack']
521
522
523
524
525
526
  content_negotiation:
    class: Drupal\Core\ContentNegotiation
  view_subscriber:
    class: Drupal\Core\EventSubscriber\ViewSubscriber
    tags:
      - { name: event_subscriber }
527
    arguments: ['@content_negotiation', '@title_resolver', '@ajax_response_renderer']
528
529
530
531
  html_view_subscriber:
    class: Drupal\Core\EventSubscriber\HtmlViewSubscriber
    tags:
      - { name: event_subscriber }
532
533
534
535
    arguments: ['@html_fragment_renderer', '@html_page_renderer']
  html_fragment_renderer:
    class: Drupal\Core\Page\DefaultHtmlFragmentRenderer
    arguments: ['@language_manager']
536
537
  html_page_renderer:
    class: Drupal\Core\Page\DefaultHtmlPageRenderer
538
539
540
541
542
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
543
    arguments: ['@private_key']
544
545
  access_arguments_resolver:
    class: Drupal\Core\Access\AccessArgumentsResolver
546
547
  access_manager:
    class: Drupal\Core\Access\AccessManager
548
    arguments: ['@router.route_provider', '@url_generator', '@paramconverter_manager', '@access_arguments_resolver']
549
550
    calls:
      - [setContainer, ['@service_container']]
551
      - [setRequest, ['@?request']]
552
553
  access_subscriber:
    class: Drupal\Core\EventSubscriber\AccessSubscriber
554
555
556
557
558
559
560
    arguments: ['@access_manager', '@current_user']
    calls:
      - [setCurrentUser, ['@?current_user']]
    tags:
      - { name: event_subscriber }
  access_route_subscriber:
    class: Drupal\Core\EventSubscriber\AccessRouteSubscriber
561
562
563
564
565
566
    tags:
      - { name: event_subscriber }
    arguments: ['@access_manager']
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
567
      - { name: access_check, applies_to: _access }
568
569
570
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
571
      - { name: access_check, applies_to: _entity_access }
572
573
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
574
    arguments: ['@entity.manager']
575
    tags:
576
      - { name: access_check, applies_to: _entity_create_access }
577
578
579
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
    tags:
580
      - { name: access_check, applies_to: _access_theme }
581
582
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
583
    arguments: ['@controller_resolver', '@access_arguments_resolver']
584
    tags:
585
      - { name: access_check, applies_to: _custom_access }
586
587
588
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
589
      - { name: access_check, applies_to: _csrf_token }
590
    arguments: ['@csrf_token']
591
592
  maintenance_mode_subscriber:
    class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
593
    arguments: ['@state', '@config.factory', '@string_translation', '@url_generator', '@current_user']
594
595
596
597
598
599
    tags:
      - { name: event_subscriber }
  path_subscriber:
    class: Drupal\Core\EventSubscriber\PathSubscriber
    tags:
      - { name: event_subscriber }
600
    arguments: ['@path.alias_manager', '@path_processor_manager']
601
602
603
604
  legacy_request_subscriber:
    class: Drupal\Core\EventSubscriber\LegacyRequestSubscriber
    tags:
      - { name: event_subscriber }
605
606
607
608
  finish_response_subscriber:
    class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
    tags:
      - { name: event_subscriber }
609
    arguments: ['@language_manager', '@config.factory']
610
    scope: request
611
612
613
614
615
616
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@url_generator']
    tags:
      - { name: event_subscriber }
    scope: request
617
618
619
620
621
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
622
623
624
625
626
627
628
629
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
630
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
631
  exception_controller:
632
    class: Drupal\Core\Controller\ExceptionController
633
    arguments: ['@content_negotiation', '@title_resolver', '@html_page_renderer', '@html_fragment_renderer', '@string_translation', '@url_generator']
634
635
636
    calls:
      - [setContainer, ['@service_container']]
  exception_listener:
637
    class: Drupal\Core\EventSubscriber\ExceptionListener
638
639
640
    tags:
      - { name: event_subscriber }
    arguments: [['@exception_controller', execute]]
641
642
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
643
644
    tags:
      - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
645
646
  path_processor_manager:
    class: Drupal\Core\PathProcessor\PathProcessorManager
647
648
649
    tags:
      - { name: service_collector, tag: path_processor_inbound, call: addInbound }
      - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
650
651
652
653
654
655
656
657
  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 }
658
      - { name: path_processor_outbound, priority: 200 }
659
660
661
662
663
    arguments: ['@config.factory']
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
664
      - { name: path_processor_outbound, priority: 300 }
665
    arguments: ['@path.alias_manager']
666
  route_processor_csrf:
667
668
669
670
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
671
672
673
674
  transliteration:
    class: Drupal\Core\Transliteration\PHPTransliteration
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
675
    arguments: ['@database', '@request_stack']
676
677
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
678
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@module_handler', '@config.factory']
679
680
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
681
    parent: default_plugin_manager
682
683
684
685
686
687
688
689
690
691
692
  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:
693
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
694
    arguments: ['@container.namespaces', '@cache.discovery', '@language_manager', '@config.factory', '@module_handler']
695
696
  image.factory:
    class: Drupal\Core\Image\ImageFactory
697
    arguments: ['@image.toolkit.manager']
698
699
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
700
    arguments: ['@module_handler']
701
702
    tags:
      - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
703
704
  token:
    class: Drupal\Core\Utility\Token
705
    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
706
  batch.storage:
707
    class: Drupal\Core\Batch\BatchStorage
708
    arguments: ['@database']
709
710
711
712
  slave_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\SlaveDatabaseIgnoreSubscriber
    tags:
      - {name: event_subscriber}
713
714
715
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
716
717
  date:
    class: Drupal\Core\Datetime\Date
718
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
  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
773
774
  theme.registry:
    class: Drupal\Core\Theme\Registry
775
    arguments: ['@cache.default', '@lock', '@module_handler']
776
777
    tags:
      - { name: needs_destruction }
778
779
780
781
782
783
784
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@authentication']
785
  current_user:
786
    class: Drupal\Core\Session\AccountProxy
787
    arguments: ['@authentication', '@request']
788
789
  session_manager:
    class: Drupal\Core\Session\SessionManager
790
    arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@settings']
791
792
    tags:
      - { name: persist }
793
794
795
  session_manager.metadata_bag:
    class: Drupal\Core\Session\MetadataBag
    arguments: ['@settings']
796
797
  asset.css.collection_renderer:
    class: Drupal\Core\Asset\CssCollectionRenderer
798
    arguments: [ '@state' ]
799
800
801
802
803
804
805
806
807
808
809
  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
810
    arguments: [ '@state' ]
811
812
813
814
815
816
817
818
819
  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
820
821
  library.discovery:
    class: Drupal\Core\Asset\LibraryDiscovery
822
823
824
825
826
827
828
829
830
    arguments: ['@library.discovery.collector']
  library.discovery.collector:
    class: Drupal\Core\Asset\LibraryDiscoveryCollector
    arguments: ['@cache.discovery', '@lock', '@library.discovery.parser']
    tags:
      - { name: needs_destruction }
  library.discovery.parser:
    class: Drupal\Core\Asset\LibraryDiscoveryParser
    arguments: ['@module_handler']
831
832
  info_parser:
    class: Drupal\Core\Extension\InfoParser
833
834
835
  element_info:
    class: Drupal\Core\Render\ElementInfo
    arguments: ['@module_handler']
836
837
838
839
840
841
842
843
844
  file.mime_type.guesser:
    class: Drupal\Core\File\MimeType\MimeTypeGuesser
    tags:
      - { name: service_collector, tag: mime_type_guesser, call: addGuesser }
  file.mime_type.guesser.extension:
    class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
    arguments: ['@module_handler']
    tags:
      - { name: mime_type_guesser }