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

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

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

563 564 565 566 567 568 569 570 571
# 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]
572 573 574 575 576 577 578
  accept_header_matcher:
    class: Drupal\Core\Routing\AcceptHeaderMatcher
    arguments: ['@content_negotiation']
    tags:
      - { name: route_filter }
  content_type_header_matcher:
    class: Drupal\Core\Routing\ContentTypeHeaderMatcher
579 580 581 582
    tags:
      - { name: route_filter }
  paramconverter_manager:
    class: Drupal\Core\ParamConverter\ParamConverterManager
583 584
    tags:
      - { name: service_collector, tag: paramconverter, call: addConverter }
585 586 587 588 589
  paramconverter_subscriber:
    class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@paramconverter_manager']
590 591 592 593
  paramconverter.entity:
    class: Drupal\Core\ParamConverter\EntityConverter
    tags:
      - { name: paramconverter }
594
    arguments: ['@entity.manager']
595 596 597 598 599 600
  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']
601 602 603 604 605
  route_subscriber.module:
    class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
606 607
  resolver_manager.entity:
    class: Drupal\Core\Entity\EntityResolverManager
608
    arguments: ['@entity.manager', '@class_resolver']
609 610 611 612
  route_subscriber.entity:
    class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
    tags:
      - { name: event_subscriber }
613
    arguments: ['@resolver_manager.entity']
614 615
  ajax_subscriber:
    class: Drupal\Core\EventSubscriber\AjaxSubscriber
616 617
    tags:
      - { name: event_subscriber }
618 619 620 621 622 623
  route_enhancer.param_conversion:
    class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
    arguments: ['@paramconverter_manager']
    tags:
      - { name: route_enhancer }
      - { name: event_subscriber }
624 625 626 627
  route_enhancer.authentication:
    class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
    tags:
      - { name: route_enhancer, priority: 1000 }
628
    arguments: ['@authentication', '@current_user']
629 630
  route_enhancer.entity:
    class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
631
    arguments: ['@controller_resolver', '@entity.manager', '@form_builder']
632
    tags:
633
      - { name: route_enhancer, priority: 20 }
634 635 636 637 638 639 640
  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
641
    arguments: ['@class_resolver', '@controller_resolver', '@form_builder']
642
    parent: container.trait
643
    tags:
644
      - { name: event_subscriber }
645 646 647 648
  route_special_attributes_subscriber:
    class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
    tags:
      - { name: event_subscriber }
649 650 651 652
  route_http_method_subscriber:
    class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
    tags:
      - { name: event_subscriber }
653 654
  controller.page:
    class: Drupal\Core\Controller\HtmlPageController
655
    arguments: ['@controller_resolver', '@title_resolver', '@render_html_renderer']
656 657
  controller.ajax:
    class: Drupal\Core\Controller\AjaxController
658
    arguments: ['@controller_resolver', '@ajax_response_renderer']
659 660
  controller.dialog:
    class: Drupal\Core\Controller\DialogController
661
    arguments: ['@controller_resolver', '@title_resolver']
662 663
  ajax_response_renderer:
    class: Drupal\Core\Ajax\AjaxResponseRenderer
664 665 666 667
  router_listener:
    class: Symfony\Component\HttpKernel\EventListener\RouterListener
    tags:
      - { name: event_subscriber }
668
    arguments: ['@router', '@router.request_context', NULL, '@request_stack']
669 670 671 672 673 674
  content_negotiation:
    class: Drupal\Core\ContentNegotiation
  view_subscriber:
    class: Drupal\Core\EventSubscriber\ViewSubscriber
    tags:
      - { name: event_subscriber }
675
    arguments: ['@content_negotiation', '@title_resolver', '@ajax_response_renderer']
676 677 678 679
  html_view_subscriber:
    class: Drupal\Core\EventSubscriber\HtmlViewSubscriber
    tags:
      - { name: event_subscriber }
680
    arguments: ['@html_fragment_renderer', '@html_page_renderer']
681 682 683
  render_html_renderer:
    class: Drupal\Core\Page\RenderHtmlRenderer
    arguments: ['@url_generator']
684 685 686
  html_fragment_renderer:
    class: Drupal\Core\Page\DefaultHtmlFragmentRenderer
    arguments: ['@language_manager']
687 688
  html_page_renderer:
    class: Drupal\Core\Page\DefaultHtmlPageRenderer
689 690 691 692 693
  private_key:
    class: Drupal\Core\PrivateKey
    arguments: ['@state']
  csrf_token:
    class: Drupal\Core\Access\CsrfTokenGenerator
694
    arguments: ['@private_key', '@session_manager.metadata_bag']
695 696
  access_arguments_resolver_factory:
    class: Drupal\Core\Access\AccessArgumentsResolverFactory
697 698
  access_manager:
    class: Drupal\Core\Access\AccessManager
699 700 701
    arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user', '@access_manager.check_provider']
  access_manager.check_provider:
    class: Drupal\Core\Access\CheckProvider
702 703
    calls:
      - [setContainer, ['@service_container']]
704
    public: false
705 706 707
  access_check.default:
    class: Drupal\Core\Access\DefaultAccessCheck
    tags:
708
      - { name: access_check, applies_to: _access }
709 710 711
  access_check.entity:
    class: Drupal\Core\Entity\EntityAccessCheck
    tags:
712
      - { name: access_check, applies_to: _entity_access }
713 714
  access_check.entity_create:
    class: Drupal\Core\Entity\EntityCreateAccessCheck
715
    arguments: ['@entity.manager']
716
    tags:
717
      - { name: access_check, applies_to: _entity_create_access }
718 719 720
  access_check.theme:
    class: Drupal\Core\Theme\ThemeAccessCheck
    tags:
721
      - { name: access_check, applies_to: _access_theme }
722 723
  access_check.custom:
    class: Drupal\Core\Access\CustomAccessCheck
724
    arguments: ['@controller_resolver', '@access_arguments_resolver_factory']
725
    tags:
726
      - { name: access_check, applies_to: _custom_access }
727 728 729
  access_check.csrf:
    class: Drupal\Core\Access\CsrfAccessCheck
    tags:
730
      - { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
731
    arguments: ['@csrf_token']
732 733 734
  maintenance_mode:
    class: Drupal\Core\Site\MaintenanceMode
    arguments: ['@state', '@current_user']
735 736
  maintenance_mode_subscriber:
    class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
737
    arguments: ['@maintenance_mode', '@config.factory', '@string_translation', '@url_generator', '@current_user']
738 739 740 741 742 743
    tags:
      - { name: event_subscriber }
  path_subscriber:
    class: Drupal\Core\EventSubscriber\PathSubscriber
    tags:
      - { name: event_subscriber }
744
    arguments: ['@path.alias_manager', '@path_processor_manager']
745 746 747 748
  finish_response_subscriber:
    class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
    tags:
      - { name: event_subscriber }
749
    arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy']
750 751 752 753 754
  redirect_response_subscriber:
    class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
    arguments: ['@url_generator']
    tags:
      - { name: event_subscriber }
755 756 757 758 759
  request_close_subscriber:
    class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@module_handler']
760 761 762 763 764 765 766 767
  config_import_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
    tags:
      - { name: event_subscriber }
  config_snapshot_subscriber:
    class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
    tags:
      - { name: event_subscriber }
768
    arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804
  exception.default_json:
    class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
    tags:
      - { name: event_subscriber }
  exception.default_html:
    class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@html_fragment_renderer', '@html_page_renderer']
  exception.default:
    class: Drupal\Core\EventSubscriber\DefaultExceptionSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@html_fragment_renderer', '@html_page_renderer', '@config.factory']
  exception.logger:
    class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@logger.factory']
  exception.custom_page_json:
    class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@path.alias_manager', '@http_kernel']
  exception.custom_page_html:
    class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@path.alias_manager', '@http_kernel', '@logger.channel.php']
  exception.fast_404_html:
    class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@config.factory', '@http_kernel']
  exception.test_site:
    class: Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
805 806
    tags:
      - { name: event_subscriber }
807 808
  route_processor_manager:
    class: Drupal\Core\RouteProcessor\RouteProcessorManager
809 810
    tags:
      - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
811 812
  path_processor_manager:
    class: Drupal\Core\PathProcessor\PathProcessorManager
813 814 815
    tags:
      - { name: service_collector, tag: path_processor_inbound, call: addInbound }
      - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
816 817 818 819 820 821 822 823
  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 }
824
      - { name: path_processor_outbound, priority: 200 }
825
    arguments: ['@config.factory']
826 827
  route_processor_none:
    class: Drupal\Core\RouteProcessor\RouteProcessorNone
828
    tags:
829 830 831 832
      - { name: route_processor_outbound, priority: 200 }
  route_processor_current:
    class: Drupal\Core\RouteProcessor\RouteProcessorCurrent
    arguments: ['@current_route_match']
833
    tags:
834
      - { name: route_processor_outbound, priority: 200 }
835 836 837 838
  path_processor_alias:
    class: Drupal\Core\PathProcessor\PathProcessorAlias
    tags:
      - { name: path_processor_inbound, priority: 100 }
839
      - { name: path_processor_outbound, priority: 300 }
840
    arguments: ['@path.alias_manager']
841
  route_processor_csrf:
842 843 844 845
    class: Drupal\Core\Access\RouteProcessorCsrf
    tags:
      - { name: route_processor_outbound }
    arguments: ['@csrf_token']
846 847 848 849
  transliteration:
    class: Drupal\Core\Transliteration\PHPTransliteration
  flood:
    class: Drupal\Core\Flood\DatabaseBackend
850
    arguments: ['@database', '@request_stack']
851 852
    tags:
      - { name: backend_overridable }
853 854
  plugin.manager.mail:
    class: Drupal\Core\Mail\MailManager
855
    arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation']
856 857
  plugin.manager.condition:
    class: Drupal\Core\Condition\ConditionManager
858
    parent: default_plugin_manager
859 860 861
  plugin.manager.element_info:
    class: Drupal\Core\Render\ElementInfoManager
    parent: default_plugin_manager
862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878
  stream_wrapper_manager:
    class: Drupal\Core\StreamWrapper\StreamWrapperManager
    arguments: ['@module_handler']
    calls:
      - [setContainer, ['@service_container']]
  stream_wrapper.public:
    class: Drupal\Core\StreamWrapper\PublicStream
    tags:
      - { name: stream_wrapper, scheme: public }
  stream_wrapper.private:
    class: Drupal\Core\StreamWrapper\PrivateStream
    tags:
      - { name: stream_wrapper, scheme: private }
  stream_wrapper.temporary:
    class: Drupal\Core\StreamWrapper\TemporaryStream
    tags:
      - { name: stream_wrapper, scheme: temporary }
879 880 881 882 883 884 885 886 887 888 889
  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:
890
    class: Drupal\Core\ImageToolkit\ImageToolkitManager
891 892
    arguments: ['@config.factory']
    parent: default_plugin_manager
893 894
  image.toolkit.operation.manager:
    class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
895
    arguments: ['@logger.channel.image']
896
    parent: default_plugin_manager
897 898
  image.factory:
    class: Drupal\Core\Image\ImageFactory
899
    arguments: ['@image.toolkit.manager']
900 901
  breadcrumb:
    class: Drupal\Core\Breadcrumb\BreadcrumbManager
902
    arguments: ['@module_handler']
903 904
    tags:
      - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
905 906
  token:
    class: Drupal\Core\Utility\Token
907
    arguments: ['@module_handler', '@cache.discovery', '@language_manager']
908
  batch.storage:
909
    class: Drupal\Core\Batch\BatchStorage
910
    arguments: ['@database', '@session_manager', '@csrf_token']
911 912
    tags:
      - { name: backend_overridable }
913 914
  replica_database_ignore__subscriber:
    class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
915 916
    tags:
      - {name: event_subscriber}
917 918 919
  country_manager:
    class: Drupal\Core\Locale\CountryManager
    arguments: ['@module_handler']
920 921
  date.formatter:
    class: Drupal\Core\Datetime\DateFormatter
922
    arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976
  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
977 978
  theme.manager:
    class: Drupal\Core\Theme\ThemeManager
979
    arguments: ['@theme.registry', '@theme.negotiator', '@theme.initialization', '@request_stack']
980 981 982
  theme.initialization:
    class: Drupal\Core\Theme\ThemeInitialization
    arguments: ['@theme_handler', '@state']
983 984
  theme.registry:
    class: Drupal\Core\Theme\Registry
985
    arguments: ['@cache.default', '@lock', '@module_handler']
986 987
    tags:
      - { name: needs_destruction }
988 989
  authentication:
    class: Drupal\Core\Authentication\AuthenticationManager
990 991
    tags:
      - { name: service_collector, tag: authentication_provider, call: addProvider }
992 993 994 995 996
  authentication_subscriber:
    class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
    tags:
      - { name: event_subscriber }
    arguments: ['@authentication']
997
  current_user:
998
    class: Drupal\Core\Session\AccountProxy
999
    arguments: ['@authentication', '@request_stack']
1000 1001
  session_manager:
    class: Drupal\Core\Session\SessionManager
1002
    arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@settings']
1003 1004
    tags:
      - { name: backend_overridable }
1005 1006 1007
  session_manager.metadata_bag:
    class: Drupal\Core\Session\MetadataBag
    arguments: ['@settings']
1008 1009
  asset.css.collection_renderer:
    class: Drupal\Core\Asset\CssCollectionRenderer
1010
    arguments: [ '@state' ]
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021
  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
1022
    arguments: [ '@state' ]
1023 1024 1025 1026 1027 1028 1029 1030 1031
  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
1032 1033
  library.discovery:
    class: Drupal\Core\Asset\LibraryDiscovery
1034 1035 1036 1037 1038 1039 1040 1041 1042
    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']
1043 1044
  info_parser:
    class: Drupal\Core\Extension\InfoParser
1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055
  twig:
    class: Drupal\Core\Template\TwigEnvironment
    arguments: ['@twig.loader', '@module_handler', '@theme_handler', '%twig.config%']
    tags:
      - { name: service_collector, tag: 'twig.extension', call: addExtension }
  twig.extension:
    class: Drupal\Core\Template\TwigExtension
    tags:
      - { name: twig.extension, priority: 100 }
    calls:
      - [setGenerators, ['@url_generator']]
1056
      - [setLinkGenerator, ['@link_generator']]
1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067
  # @todo Figure out what to do about debugging functions.
  # @see http://drupal.org/node/1804998
  twig.extension.debug:
    class: Twig_Extension_Debug
    tags:
      - { name: twig.extension }
  twig.loader:
    alias: twig.loader.filesystem
  twig.loader.filesystem:
    class: Twig_Loader_Filesystem
    arguments: ['%app.root%']
1068
  element_info:
1069
    alias: plugin.manager.element_info
1070 1071 1072 1073 1074 1075 1076 1077 1078
  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 }