Pull merge.
[yaffs-website] / web / core / core.services.yml
1 parameters:
2   session.storage.options:
3     gc_probability: 1
4     gc_divisor: 100
5     gc_maxlifetime: 200000
6     cookie_lifetime: 2000000
7   twig.config:
8     debug: false
9     auto_reload: null
10     cache: true
11   renderer.config:
12     required_cache_contexts: ['languages:language_interface', 'theme', 'user.permissions']
13     auto_placeholder_conditions:
14       max-age: 0
15       contexts: ['session', 'user']
16       tags: []
17   factory.keyvalue:
18     default: keyvalue.database
19   http.response.debug_cacheability_headers: false
20   factory.keyvalue.expirable:
21     default: keyvalue.expirable.database
22   filter_protocols:
23     - http
24     - https
25     - ftp
26     - news
27     - nntp
28     - tel
29     - telnet
30     - mailto
31     - irc
32     - ssh
33     - sftp
34     - webcal
35     - rtsp
36   cors.config:
37     enabled: false
38     allowedHeaders: []
39     allowedMethods: []
40     allowedOrigins: ['*']
41     exposedHeaders: false
42     maxAge: false
43     supportsCredentials: false
44   tempstore.expire: 604800
45 services:
46   # Simple cache contexts, directly derived from the request context.
47   cache_context.ip:
48     class: Drupal\Core\Cache\Context\IpCacheContext
49     arguments: ['@request_stack']
50     tags:
51       - { name: cache.context }
52   cache_context.headers:
53     class: Drupal\Core\Cache\Context\HeadersCacheContext
54     arguments: ['@request_stack']
55     tags:
56       - { name: cache.context }
57   cache_context.cookies:
58     class: Drupal\Core\Cache\Context\CookiesCacheContext
59     arguments: ['@request_stack']
60     tags:
61       - { name: cache.context }
62   cache_context.session:
63     class: Drupal\Core\Cache\Context\SessionCacheContext
64     arguments: ['@request_stack']
65     tags:
66       - { name: cache.context}
67   cache_context.session.exists:
68     class: Drupal\Core\Cache\Context\SessionExistsCacheContext
69     arguments: ['@session_configuration', '@request_stack']
70     tags:
71       - { name: cache.context}
72   cache_context.request_format:
73     class: Drupal\Core\Cache\Context\RequestFormatCacheContext
74     arguments: ['@request_stack']
75     tags:
76       - { name: cache.context }
77   cache_context.url:
78     class: Drupal\Core\Cache\Context\UrlCacheContext
79     arguments: ['@request_stack']
80     tags:
81       - { name: cache.context }
82   cache_context.url.site:
83     class: Drupal\Core\Cache\Context\SiteCacheContext
84     arguments: ['@request_stack']
85     tags:
86       - { name: cache.context }
87   cache_context.url.path:
88     class: Drupal\Core\Cache\Context\PathCacheContext
89     arguments: ['@request_stack']
90     tags:
91       - { name: cache.context }
92   cache_context.url.path.parent:
93     class: Drupal\Core\Cache\Context\PathParentCacheContext
94     arguments: ['@request_stack']
95     tags:
96       - { name: cache.context }
97   cache_context.url.path.is_front:
98     class: Drupal\Core\Cache\Context\IsFrontPathCacheContext
99     arguments: ['@path.matcher']
100     tags:
101       - { name: cache.context }
102   cache_context.url.query_args:
103     class: Drupal\Core\Cache\Context\QueryArgsCacheContext
104     arguments: ['@request_stack']
105     tags:
106       - { name: cache.context }
107   cache_context.url.query_args.pagers:
108     class: Drupal\Core\Cache\Context\PagersCacheContext
109     arguments: ['@request_stack']
110     tags:
111       - { name: cache.context }
112
113   # Complex cache contexts, that depend on the routing system.
114   cache_context.route:
115     class: Drupal\Core\Cache\Context\RouteCacheContext
116     arguments: ['@current_route_match']
117     tags:
118       - { name: cache.context }
119   cache_context.route.name:
120     class: Drupal\Core\Cache\Context\RouteNameCacheContext
121     arguments: ['@current_route_match']
122     tags:
123       - { name: cache.context }
124   cache_context.route.menu_active_trails:
125     class: Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext
126     calls:
127       - [setContainer, ['@service_container']]
128     tags:
129       - { name: cache.context }
130
131   # Complex cache contexts, that may be calculated from a combination of
132   # multiple aspects of the request context plus additional logic. Hence they
133   # are their own roots.
134   cache_context.user:
135     class: Drupal\Core\Cache\Context\UserCacheContext
136     arguments: ['@current_user']
137     tags:
138       - { name: cache.context}
139   cache_context.user.permissions:
140     class: Drupal\Core\Cache\Context\AccountPermissionsCacheContext
141     arguments: ['@current_user', '@user_permissions_hash_generator']
142     tags:
143       - { name: cache.context}
144   cache_context.user.roles:
145     class: Drupal\Core\Cache\Context\UserRolesCacheContext
146     arguments: ['@current_user']
147     tags:
148       - { name: cache.context}
149   cache_context.user.is_super_user:
150     class: Drupal\Core\Cache\Context\IsSuperUserCacheContext
151     arguments: ['@current_user']
152     tags:
153       - { name: cache.context}
154   cache_context.languages:
155     class: Drupal\Core\Cache\Context\LanguagesCacheContext
156     arguments: ['@language_manager']
157     tags:
158       - { name: cache.context}
159   cache_context.theme:
160     class: Drupal\Core\Cache\Context\ThemeCacheContext
161     arguments: ['@theme.manager']
162     tags:
163       - { name: cache.context}
164   cache_context.timezone:
165     class: Drupal\Core\Cache\Context\TimeZoneCacheContext
166     tags:
167       - { name: cache.context}
168
169   cache_factory:
170     class: Drupal\Core\Cache\CacheFactory
171     arguments: ['@settings', '%cache_default_bin_backends%']
172     calls:
173       - [setContainer, ['@service_container']]
174   cache_contexts_manager:
175     class: Drupal\Core\Cache\Context\CacheContextsManager
176     arguments: ['@service_container', '%cache_contexts%' ]
177   cache_tags.invalidator:
178     parent: container.trait
179     class: Drupal\Core\Cache\CacheTagsInvalidator
180     calls:
181       - [setContainer, ['@service_container']]
182     tags:
183       - { name: service_collector, call: addInvalidator, tag: cache_tags_invalidator }
184   cache_tags.invalidator.checksum:
185     class: Drupal\Core\Cache\DatabaseCacheTagsChecksum
186     arguments: ['@database']
187     tags:
188       - { name: cache_tags_invalidator}
189   cache.backend.chainedfast:
190     class: Drupal\Core\Cache\ChainedFastBackendFactory
191     arguments: ['@settings']
192     calls:
193       - [setContainer, ['@service_container']]
194   cache.backend.database:
195     class: Drupal\Core\Cache\DatabaseBackendFactory
196     arguments: ['@database', '@cache_tags.invalidator.checksum', '@settings']
197   cache.backend.apcu:
198     class: Drupal\Core\Cache\ApcuBackendFactory
199     arguments: ['@app.root', '@site.path', '@cache_tags.invalidator.checksum']
200   cache.backend.php:
201     class: Drupal\Core\Cache\PhpBackendFactory
202     arguments: ['@cache_tags.invalidator.checksum']
203   cache.backend.memory:
204     class: Drupal\Core\Cache\MemoryBackendFactory
205   # A special cache bin that does not persist beyond the length of the request.
206   cache.static:
207     class: Drupal\Core\Cache\CacheBackendInterface
208     tags:
209       - { name: cache.bin, default_backend: cache.backend.memory }
210     factory: cache_factory:get
211     arguments: [static]
212   cache.bootstrap:
213     class: Drupal\Core\Cache\CacheBackendInterface
214     tags:
215       - { name: cache.bin, default_backend: cache.backend.chainedfast }
216     factory: cache_factory:get
217     arguments: [bootstrap]
218   cache.config:
219     class: Drupal\Core\Cache\CacheBackendInterface
220     tags:
221       - { name: cache.bin, default_backend: cache.backend.chainedfast }
222     factory: cache_factory:get
223     arguments: [config]
224   cache.default:
225     class: Drupal\Core\Cache\CacheBackendInterface
226     tags:
227       - { name: cache.bin }
228     factory: cache_factory:get
229     arguments: [default]
230   cache.entity:
231     class: Drupal\Core\Cache\CacheBackendInterface
232     tags:
233       - { name: cache.bin }
234     factory: cache_factory:get
235     arguments: [entity]
236   cache.menu:
237     class: Drupal\Core\Cache\CacheBackendInterface
238     tags:
239       - { name: cache.bin }
240     factory: cache_factory:get
241     arguments: [menu]
242   cache.render:
243     class: Drupal\Core\Cache\CacheBackendInterface
244     tags:
245       - { name: cache.bin }
246     factory: cache_factory:get
247     arguments: [render]
248   cache.data:
249     class: Drupal\Core\Cache\CacheBackendInterface
250     tags:
251       - { name: cache.bin }
252     factory: cache_factory:get
253     arguments: [data]
254   cache.discovery:
255     class: Drupal\Core\Cache\CacheBackendInterface
256     tags:
257       - { name: cache.bin, default_backend: cache.backend.chainedfast }
258     factory: cache_factory:get
259     arguments: [discovery]
260   cache_router_rebuild_subscriber:
261     class: Drupal\Core\EventSubscriber\CacheRouterRebuildSubscriber
262     tags:
263       - { name: event_subscriber }
264   page_cache_request_policy:
265     class: Drupal\Core\PageCache\DefaultRequestPolicy
266     arguments: ['@session_configuration']
267     tags:
268       - { name: service_collector, tag: page_cache_request_policy, call: addPolicy}
269   page_cache_response_policy:
270     class: Drupal\Core\PageCache\ChainResponsePolicy
271     tags:
272       - { name: service_collector, tag: page_cache_response_policy, call: addPolicy}
273     lazy: true
274   page_cache_kill_switch:
275     class: Drupal\Core\PageCache\ResponsePolicy\KillSwitch
276     tags:
277       - { name: page_cache_response_policy }
278       - { name: dynamic_page_cache_response_policy }
279   page_cache_no_cache_routes:
280     class: Drupal\Core\PageCache\ResponsePolicy\DenyNoCacheRoutes
281     arguments: ['@current_route_match']
282     public: false
283     tags:
284       - { name: page_cache_response_policy }
285       - { name: dynamic_page_cache_response_policy }
286   page_cache_no_server_error:
287     class: Drupal\Core\PageCache\ResponsePolicy\NoServerError
288     public: false
289     tags:
290       - { name: page_cache_response_policy }
291       - { name: dynamic_page_cache_response_policy }
292   config.manager:
293     class: Drupal\Core\Config\ConfigManager
294     arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
295   config.factory:
296     class: Drupal\Core\Config\ConfigFactory
297     tags:
298       - { name: event_subscriber }
299       - { name: service_collector, tag: 'config.factory.override', call: addOverride }
300     arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
301   config.importer_subscriber:
302     class: Drupal\Core\Config\Importer\FinalMissingContentSubscriber
303     tags:
304       - { name: event_subscriber }
305   config.installer:
306     class: Drupal\Core\Config\ConfigInstaller
307     arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher', '%install_profile%']
308     lazy: true
309   config.storage:
310     class: Drupal\Core\Config\CachedStorage
311     arguments: ['@config.storage.active', '@cache.config']
312   config.storage.active:
313     class: Drupal\Core\Config\DatabaseStorage
314     arguments: ['@database', 'config']
315     public: false
316     tags:
317       - { name: backend_overridable }
318   # @deprecated in Drupal 8.0.x and will be removed before 9.0.0. Use
319   #   config.storage.sync instead.
320   # @see https://www.drupal.org/node/2574957
321   config.storage.staging:
322     class: Drupal\Core\Config\FileStorage
323     factory: Drupal\Core\Config\FileStorageFactory::getSync
324   config.storage.sync:
325     alias: config.storage.staging
326   config.storage.snapshot:
327     class: Drupal\Core\Config\DatabaseStorage
328     arguments: ['@database', config_snapshot]
329     tags:
330       - { name: backend_overridable }
331   config.storage.schema:
332     class: Drupal\Core\Config\ExtensionInstallStorage
333     arguments: ['@config.storage', 'config/schema', '', true, '%install_profile%']
334   config.typed:
335     class: Drupal\Core\Config\TypedConfigManager
336     arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery', '@module_handler', '@class_resolver']
337     tags:
338       - { name: plugin_manager_cache_clear }
339     calls:
340       - [setValidationConstraintManager, ['@validation.constraint']]
341   context.handler:
342     class: Drupal\Core\Plugin\Context\ContextHandler
343     arguments: ['@typed_data_manager']
344   context.repository:
345     class: Drupal\Core\Plugin\Context\LazyContextRepository
346     arguments: ['@service_container']
347   cron:
348     class: Drupal\Core\Cron
349     arguments: ['@module_handler', '@lock', '@queue', '@state', '@account_switcher', '@logger.channel.cron', '@plugin.manager.queue_worker', '@datetime.time']
350     lazy: true
351   diff.formatter:
352     class: Drupal\Core\Diff\DiffFormatter
353     arguments: ['@config.factory']
354   database:
355     class: Drupal\Core\Database\Connection
356     factory: Drupal\Core\Database\Database::getConnection
357     arguments: [default]
358   datetime.time:
359     class: Drupal\Component\Datetime\Time
360     arguments: ['@request_stack']
361   file_system:
362     class: Drupal\Core\File\FileSystem
363     arguments: ['@stream_wrapper_manager', '@settings', '@logger.channel.file']
364   form_builder:
365     class: Drupal\Core\Form\FormBuilder
366     arguments: ['@form_validator', '@form_submitter', '@form_cache', '@module_handler', '@event_dispatcher', '@request_stack', '@class_resolver', '@element_info', '@theme.manager', '@?csrf_token']
367   form_validator:
368     class: Drupal\Core\Form\FormValidator
369     arguments: ['@request_stack', '@string_translation', '@csrf_token', '@logger.channel.form', '@form_error_handler']
370   form_submitter:
371     class: Drupal\Core\Form\FormSubmitter
372     arguments: ['@request_stack', '@url_generator']
373   form_error_handler:
374     class: Drupal\Core\Form\FormErrorHandler
375   form_cache:
376     class: Drupal\Core\Form\FormCache
377     arguments: ['@app.root', '@keyvalue.expirable', '@module_handler', '@current_user', '@csrf_token', '@logger.channel.form', '@request_stack', '@page_cache_request_policy']
378     public: false  # Private to form_builder
379   keyvalue:
380     class: Drupal\Core\KeyValueStore\KeyValueFactory
381     arguments: ['@service_container', '%factory.keyvalue%']
382   keyvalue.database:
383     class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
384     arguments: ['@serialization.phpserialize', '@database']
385   keyvalue.expirable:
386     class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
387     arguments: ['@service_container', '%factory.keyvalue.expirable%']
388   keyvalue.expirable.database:
389     class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
390     arguments: ['@serialization.phpserialize', '@database']
391   logger.factory:
392     class: Drupal\Core\Logger\LoggerChannelFactory
393     parent: container.trait
394     tags:
395       - { name: service_collector, tag: logger, call: addLogger }
396   logger.channel_base:
397     abstract: true
398     class: Drupal\Core\Logger\LoggerChannel
399     factory: logger.factory:get
400   logger.channel.default:
401     parent: logger.channel_base
402     arguments: ['system']
403   logger.channel.php:
404     parent: logger.channel_base
405     arguments: ['php']
406   logger.channel.image:
407     parent: logger.channel_base
408     arguments: ['image']
409   logger.channel.cron:
410     parent: logger.channel_base
411     arguments: ['cron']
412   logger.channel.file:
413     class: Drupal\Core\Logger\LoggerChannel
414     factory: logger.factory:get
415     arguments: ['file']
416   logger.channel.form:
417     parent: logger.channel_base
418     arguments: ['form']
419   logger.log_message_parser:
420     class: Drupal\Core\Logger\LogMessageParser
421
422   serialization.json:
423     class: Drupal\Component\Serialization\Json
424   serialization.phpserialize:
425     class: Drupal\Component\Serialization\PhpSerialize
426   serialization.yaml:
427     class: Drupal\Component\Serialization\Yaml
428
429   settings:
430     class: Drupal\Core\Site\Settings
431     factory: Drupal\Core\Site\Settings::getInstance
432   state:
433     class: Drupal\Core\State\State
434     arguments: ['@keyvalue']
435   queue:
436     class: Drupal\Core\Queue\QueueFactory
437     arguments: ['@settings']
438     calls:
439       - [setContainer, ['@service_container']]
440   queue.database:
441     class: Drupal\Core\Queue\QueueDatabaseFactory
442     arguments: ['@database']
443   path.alias_whitelist:
444     class: Drupal\Core\Path\AliasWhitelist
445     tags:
446       - { name: needs_destruction }
447     arguments: [path_alias_whitelist, '@cache.bootstrap', '@lock', '@state', '@path.alias_storage']
448   path.alias_manager:
449     class: Drupal\Core\Path\AliasManager
450     arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
451   path.current:
452     class: Drupal\Core\Path\CurrentPathStack
453     arguments: ['@request_stack']
454   http_handler_stack:
455     class: GuzzleHttp\HandlerStack
456     public: false
457     factory: GuzzleHttp\HandlerStack::create
458     configurator: ['@http_handler_stack_configurator', configure]
459   http_handler_stack_configurator:
460     class: Drupal\Core\Http\HandlerStackConfigurator
461     public: false
462     arguments: ['@service_container']
463   http_client:
464     class: GuzzleHttp\Client
465     factory: http_client_factory:fromOptions
466   http_client_factory:
467     class: Drupal\Core\Http\ClientFactory
468     arguments: ['@http_handler_stack']
469   plugin.manager.link_relation_type:
470     class: \Drupal\Core\Http\LinkRelationTypeManager
471     arguments: ['@app.root', '@module_handler', '@cache.discovery']
472   theme.negotiator:
473     class: Drupal\Core\Theme\ThemeNegotiator
474     arguments: ['@access_check.theme', '@class_resolver']
475     tags:
476       - { name: service_id_collector, tag: theme_negotiator }
477   theme.negotiator.default:
478     class: Drupal\Core\Theme\DefaultNegotiator
479     arguments: ['@config.factory']
480     tags:
481       - { name: theme_negotiator, priority: -100 }
482   theme.negotiator.ajax_base_page:
483     class: Drupal\Core\Theme\AjaxBasePageNegotiator
484     arguments: ['@csrf_token', '@config.factory', '@request_stack']
485     tags:
486       - { name: theme_negotiator, priority: 1000 }
487   container.namespaces:
488     class: ArrayObject
489     arguments: [ '%container.namespaces%' ]
490   container.trait:
491     abstract: true
492     calls:
493       - [setContainer, ['@service_container']]
494   default_plugin_manager:
495     abstract: true
496     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
497   module_handler:
498     class: Drupal\Core\Extension\ModuleHandler
499     arguments: ['@app.root', '%container.modules%', '@cache.bootstrap']
500   module_installer:
501     class: Drupal\Core\Extension\ModuleInstaller
502     tags:
503       - { name: service_collector, tag: 'module_install.uninstall_validator', call: addUninstallValidator }
504     arguments: ['@app.root', '@module_handler', '@kernel', '@router.builder']
505     lazy: true
506   extension.list.module:
507     class: Drupal\Core\Extension\ModuleExtensionList
508     arguments: ['@app.root', 'module', '@cache.default', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.profile', '%install_profile%', '%container.modules%']
509   extension.list.profile:
510     class: Drupal\Core\Extension\ProfileExtensionList
511     arguments: ['@app.root', 'profile', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
512   content_uninstall_validator:
513     class: Drupal\Core\Entity\ContentUninstallValidator
514     tags:
515       - { name: module_install.uninstall_validator }
516     arguments: ['@entity.manager', '@string_translation']
517     lazy: true
518   required_module_uninstall_validator:
519     class: Drupal\Core\Extension\RequiredModuleUninstallValidator
520     tags:
521       - { name: module_install.uninstall_validator }
522     arguments: ['@string_translation']
523     lazy: true
524   theme_handler:
525     class: Drupal\Core\Extension\ThemeHandler
526     arguments: ['@app.root', '@config.factory', '@module_handler', '@state', '@info_parser']
527   theme_installer:
528     class: Drupal\Core\Extension\ThemeInstaller
529     arguments: ['@theme_handler', '@config.factory', '@config.installer', '@module_handler', '@config.manager', '@asset.css.collection_optimizer', '@router.builder', '@logger.channel.default', '@state']
530   # @deprecated in Drupal 8.0.x and will be removed before 9.0.0. Use the other
531   #   entity* services instead.
532   entity.manager:
533     # We cannot set the deprecated property here because many test cases still
534     # rely on this service and they would fail with deprecation warnings.
535     class: Drupal\Core\Entity\EntityManager
536     parent: container.trait
537     # @todo Remove this tag in https://www.drupal.org/node/2549143.
538     tags:
539       - { name: plugin_manager_cache_clear }
540   entity.memory_cache:
541     class: Drupal\Core\Cache\MemoryCache\MemoryCache
542   entity_type.manager:
543     class: Drupal\Core\Entity\EntityTypeManager
544     arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@string_translation', '@class_resolver']
545     parent: container.trait
546     tags:
547       - { name: plugin_manager_cache_clear }
548   entity_type.repository:
549     class: Drupal\Core\Entity\EntityTypeRepository
550     arguments: ['@entity_type.manager']
551   entity_type.bundle.info:
552     class: Drupal\Core\Entity\EntityTypeBundleInfo
553     arguments: ['@entity_type.manager', '@language_manager', '@module_handler', '@typed_data_manager', '@cache.discovery']
554   entity.repository:
555     class: Drupal\Core\Entity\EntityRepository
556     arguments: ['@entity_type.manager', '@language_manager']
557   entity_display.repository:
558     class: Drupal\Core\Entity\EntityDisplayRepository
559     arguments: ['@entity_type.manager', '@module_handler', '@cache.discovery', '@language_manager']
560   entity_field.manager:
561     class: Drupal\Core\Entity\EntityFieldManager
562     arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_display.repository', '@typed_data_manager', '@language_manager', '@keyvalue', '@module_handler', '@cache.discovery']
563   entity_type.listener:
564     class: Drupal\Core\Entity\EntityTypeListener
565     arguments: ['@entity_type.manager', '@entity_field.manager', '@event_dispatcher', '@entity.last_installed_schema.repository']
566   entity_bundle.listener:
567     class: Drupal\Core\Entity\EntityBundleListener
568     arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@module_handler']
569   entity_route_subscriber:
570     class: Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
571     arguments: ['@entity.manager']
572     tags:
573       - { name: event_subscriber }
574   entity.definition_update_manager:
575     class: Drupal\Core\Entity\EntityDefinitionUpdateManager
576     arguments: ['@entity.manager', '@entity.last_installed_schema.repository']
577   entity.last_installed_schema.repository:
578     class: Drupal\Core\Entity\EntityLastInstalledSchemaRepository
579     arguments: ['@keyvalue']
580   entity_field.deleted_fields_repository:
581     class: Drupal\Core\Field\DeletedFieldsRepository
582     arguments: ['@state']
583   field_storage_definition.listener:
584     class: Drupal\Core\Field\FieldStorageDefinitionListener
585     arguments: ['@entity_type.manager', '@event_dispatcher', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_field.deleted_fields_repository']
586   field_definition.listener:
587     class: Drupal\Core\Field\FieldDefinitionListener
588     arguments: ['@entity_type.manager', '@entity_field.manager', '@keyvalue', '@cache.discovery']
589   entity.form_builder:
590     class: Drupal\Core\Entity\EntityFormBuilder
591     arguments: ['@entity.manager', '@form_builder']
592   entity.bundle_config_import_validator:
593     class: Drupal\Core\Entity\Event\BundleConfigImportValidate
594     arguments: ['@config.manager', '@entity.manager']
595     tags:
596       - { name: event_subscriber }
597   entity.autocomplete_matcher:
598     class: Drupal\Core\Entity\EntityAutocompleteMatcher
599     arguments: ['@plugin.manager.entity_reference_selection']
600   plugin_form.factory:
601     class: Drupal\Core\Plugin\PluginFormFactory
602     arguments: ['@class_resolver']
603   plugin.manager.entity_reference_selection:
604     class: Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManager
605     parent: default_plugin_manager
606   plugin.manager.block:
607     class: Drupal\Core\Block\BlockManager
608     parent: default_plugin_manager
609     arguments: ['@logger.channel.default']
610   plugin.manager.field.field_type:
611     class: Drupal\Core\Field\FieldTypePluginManager
612     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@typed_data_manager']
613   plugin.manager.field.widget:
614     class: Drupal\Core\Field\WidgetPluginManager
615     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
616   plugin.manager.field.formatter:
617     class: Drupal\Core\Field\FormatterPluginManager
618     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
619   plugin.manager.archiver:
620     class: Drupal\Core\Archiver\ArchiverManager
621     parent: default_plugin_manager
622   plugin.manager.action:
623     class: Drupal\Core\Action\ActionManager
624     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
625   plugin.manager.menu.link:
626     class: Drupal\Core\Menu\MenuLinkManager
627     arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
628   menu.link_tree:
629     class: Drupal\Core\Menu\MenuLinkTree
630     arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@controller_resolver']
631   menu.default_tree_manipulators:
632     class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
633     arguments: ['@access_manager', '@current_user', '@entity_type.manager']
634   menu.active_trail:
635     class: Drupal\Core\Menu\MenuActiveTrail
636     arguments: ['@plugin.manager.menu.link', '@current_route_match', '@cache.menu', '@lock']
637     tags:
638       - { name: needs_destruction }
639   menu.parent_form_selector:
640     class: Drupal\Core\Menu\MenuParentFormSelector
641     arguments: ['@menu.link_tree', '@entity.manager', '@string_translation']
642   plugin.manager.menu.local_action:
643     class: Drupal\Core\Menu\LocalActionManager
644     arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
645   plugin.manager.menu.local_task:
646     class: Drupal\Core\Menu\LocalTaskManager
647     arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
648   plugin.manager.menu.contextual_link:
649     class: Drupal\Core\Menu\ContextualLinkManager
650     arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
651   plugin.manager.display_variant:
652     class: Drupal\Core\Display\VariantManager
653     parent: default_plugin_manager
654   plugin.manager.queue_worker:
655     class: Drupal\Core\Queue\QueueWorkerManager
656     parent: default_plugin_manager
657   plugin.cache_clearer:
658     class: Drupal\Core\Plugin\CachedDiscoveryClearer
659     lazy: true
660   paramconverter.menu_link:
661     class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
662     tags:
663       - { name: paramconverter }
664     arguments: ['@plugin.manager.menu.link']
665     lazy: true
666   menu.tree_storage:
667     class: Drupal\Core\Menu\MenuTreeStorage
668     arguments: ['@database', '@cache.menu', '@cache_tags.invalidator', 'menu_tree']
669     public: false  # Private to plugin.manager.menu.link and menu.link_tree
670     tags:
671       - { name: backend_overridable }
672   menu_link.static.overrides:
673     class: Drupal\Core\Menu\StaticMenuLinkOverrides
674     arguments: ['@config.factory']
675   request_stack:
676     class: Symfony\Component\HttpFoundation\RequestStack
677     tags:
678       - { name: persist }
679   current_route_match:
680      class: Drupal\Core\Routing\CurrentRouteMatch
681      arguments: ['@request_stack']
682   event_dispatcher:
683     class: Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher
684     arguments: ['@service_container']
685   app.root:
686     class: SplString
687     factory: app.root.factory:get
688     tags:
689       - { name: parameter_service }
690   app.root.factory:
691     class: Drupal\Core\AppRootFactory
692     arguments: ['@kernel']
693     public: false
694   site.path:
695     class: SplString
696     factory: site.path.factory:get
697     tags:
698       - { name: parameter_service }
699   site.path.factory:
700     class: Drupal\Core\SitePathFactory
701     arguments: ['@kernel']
702     public: false
703   controller_resolver:
704     class: Drupal\Core\Controller\ControllerResolver
705     arguments: ['@psr7.http_message_factory', '@class_resolver']
706   class_resolver:
707     class: Drupal\Core\DependencyInjection\ClassResolver
708     calls:
709       - [setContainer, ['@service_container']]
710   title_resolver:
711     class: Drupal\Core\Controller\TitleResolver
712     arguments: ['@controller_resolver', '@string_translation', '@http_kernel.controller.argument_resolver']
713   http_kernel:
714     class: Stack\StackedHttpKernel
715   http_kernel.basic:
716     class: Symfony\Component\HttpKernel\HttpKernel
717     arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack', '@http_kernel.controller.argument_resolver']
718   http_kernel.controller.argument_resolver:
719     class: Symfony\Component\HttpKernel\Controller\ArgumentResolver
720     arguments: ['@http_kernel.controller.argument_metadata_factory', ['@argument_resolver.request_attribute', '@argument_resolver.raw_parameter', '@argument_resolver.request', '@argument_resolver.psr7_request', '@argument_resolver.route_match', '@argument_resolver.default']]
721   http_kernel.controller.argument_metadata_factory:
722     class: Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory
723     public: false
724   argument_resolver.request_attribute:
725     class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
726     public: false
727   argument_resolver.raw_parameter:
728     class: Drupal\Core\Controller\ArgumentResolver\RawParameterValueResolver
729     public: false
730   argument_resolver.request:
731     class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
732     public: false
733   argument_resolver.psr7_request:
734     class: Drupal\Core\Controller\ArgumentResolver\Psr7RequestValueResolver
735     arguments: ['@psr7.http_message_factory']
736     public: false
737   argument_resolver.route_match:
738     class: Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
739     public: false
740   argument_resolver.default:
741     class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
742     public: false
743   http_middleware.negotiation:
744     class: Drupal\Core\StackMiddleware\NegotiationMiddleware
745     tags:
746       - { name: http_middleware, priority: 400 }
747   http_middleware.reverse_proxy:
748     class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
749     arguments: ['@settings']
750     tags:
751       - { name: http_middleware, priority: 300 }
752   http_middleware.kernel_pre_handle:
753     class: Drupal\Core\StackMiddleware\KernelPreHandle
754     arguments: ['@kernel']
755     tags:
756       - { name: http_middleware, priority: 100 }
757   http_middleware.session:
758     class: Drupal\Core\StackMiddleware\Session
759     tags:
760       - { name: http_middleware, priority: 50 }
761     calls:
762       - [setContainer, ['@service_container']]
763   http_middleware.cors:
764      class: Asm89\Stack\Cors
765      arguments: ['%cors.config%']
766      tags:
767        - { name: http_middleware, priority: 250 }
768   psr7.http_foundation_factory:
769     class: Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory
770   psr7.http_message_factory:
771     class: Symfony\Bridge\PsrHttpMessage\Factory\DiactorosFactory
772   language_manager:
773     class: Drupal\Core\Language\LanguageManager
774     arguments: ['@language.default']
775   language.current_language_context:
776     class: Drupal\Core\Language\ContextProvider\CurrentLanguageContext
777     arguments: ['@language_manager']
778     tags:
779       - { name: 'context_provider' }
780   language.default:
781     class: Drupal\Core\Language\LanguageDefault
782     arguments: ['%language.default_values%']
783   string_translator.custom_strings:
784     class: Drupal\Core\StringTranslation\Translator\CustomStrings
785     arguments: ['@settings']
786     tags:
787       - { name: string_translator, priority: 30 }
788   string_translation:
789     class: Drupal\Core\StringTranslation\TranslationManager
790     arguments: ['@language.default']
791     tags:
792       - { name: service_collector, tag: string_translator, call: addTranslator }
793   database.replica:
794     class: Drupal\Core\Database\Connection
795     factory: Drupal\Core\Database\Database::getConnection
796     arguments: [replica]
797   typed_data_manager:
798     class: Drupal\Core\TypedData\TypedDataManager
799     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@class_resolver']
800     calls:
801       - [setValidationConstraintManager, ['@validation.constraint']]
802     tags:
803       - { name: plugin_manager_cache_clear }
804   validation.constraint:
805     class: Drupal\Core\Validation\ConstraintManager
806     parent: default_plugin_manager
807     tags:
808       - { name: plugin_manager_cache_clear }
809   lock:
810     class: Drupal\Core\Lock\DatabaseLockBackend
811     arguments: ['@database']
812     tags:
813       - { name: backend_overridable }
814     lazy: true
815   lock.persistent:
816     class: Drupal\Core\Lock\PersistentDatabaseLockBackend
817     arguments: ['@database']
818     tags:
819       - { name: backend_overridable }
820     lazy: true
821   router.request_context:
822     class: Drupal\Core\Routing\RequestContext
823     tags:
824       - { name: persist }
825     calls:
826       - [fromRequestStack, ['@request_stack']]
827   router.admin_context:
828     class: Drupal\Core\Routing\AdminContext
829     arguments: ['@current_route_match']
830   router.route_provider:
831     class: Drupal\Core\Routing\RouteProvider
832     arguments: ['@database', '@state', '@path.current', '@cache.data', '@path_processor_manager', '@cache_tags.invalidator', 'router', '@language_manager']
833     tags:
834       - { name: event_subscriber }
835       - { name: backend_overridable }
836   router.route_provider.lazy_builder:
837     class: Drupal\Core\Routing\RouteProviderLazyBuilder
838     arguments: ['@router.route_provider', '@router.builder']
839     tags:
840       - { name: event_subscriber }
841   router.route_preloader:
842     class: Drupal\Core\Routing\RoutePreloader
843     arguments: ['@router.route_provider', '@state', '@cache.bootstrap']
844     tags:
845       - { name: 'event_subscriber' }
846   router.matcher.final_matcher:
847     class: Drupal\Core\Routing\UrlMatcher
848     arguments: ['@path.current']
849     deprecated: The "%service_id%" service is deprecated. You should use the 'router.no_access_checks' service instead.
850   router.matcher:
851     class: Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher
852     arguments: ['@router.route_provider']
853     calls:
854       - [setFinalMatcher, ['@router.matcher.final_matcher']]
855     tags:
856       - { name: service_collector, tag: non_lazy_route_filter, call: addRouteFilter }
857     deprecated: The "%service_id%" service is deprecated. You should use the 'router.no_access_checks' service instead.
858   url_generator.non_bubbling:
859     class: Drupal\Core\Routing\UrlGenerator
860     arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@request_stack', '%filter_protocols%']
861     public: false
862     calls:
863       - [setContext, ['@?router.request_context']]
864   url_generator:
865     class: Drupal\Core\Render\MetadataBubblingUrlGenerator
866     arguments: ['@url_generator.non_bubbling', '@renderer']
867     calls:
868       - [setContext, ['@?router.request_context']]
869   redirect.destination:
870     class: Drupal\Core\Routing\RedirectDestination
871     arguments: ['@request_stack', '@url_generator']
872   unrouted_url_assembler:
873     class: Drupal\Core\Utility\UnroutedUrlAssembler
874     arguments: ['@request_stack', '@path_processor_manager', '%filter_protocols%']
875   link_generator:
876     class: Drupal\Core\Utility\LinkGenerator
877     arguments: ['@url_generator', '@module_handler', '@renderer']
878   router:
879     class: Drupal\Core\Routing\AccessAwareRouter
880     arguments: ['@router.no_access_checks', '@access_manager', '@current_user']
881   router.dynamic:
882     class: Symfony\Cmf\Component\Routing\DynamicRouter
883     arguments: ['@router.request_context', '@router.matcher', '@url_generator']
884     tags:
885       - { name: service_collector, tag: non_lazy_route_enhancer, call: addRouteEnhancer }
886     deprecated: The "%service_id%" service is deprecated. You should use the 'router.no_access_checks' service instead.
887   router.no_access_checks:
888     class: \Drupal\Core\Routing\Router
889     arguments: ['@router.route_provider', '@path.current', '@url_generator']
890     tags:
891       # @todo Try to combine those tags together, see https://www.drupal.org/node/2915772.
892       - { name: service_collector, tag: non_lazy_route_enhancer, call: addRouteEnhancer }
893       - { name: service_collector, tag: route_enhancer, call: addRouteEnhancer  }
894       - { name: service_collector, tag: non_lazy_route_filter, call: addRouteFilter }
895       - { name: service_collector, tag: route_filter, call: addRouteFilter }
896     calls:
897       - [setContext, ['@router.request_context']]
898   router.path_roots_subscriber:
899     class: Drupal\Core\EventSubscriber\PathRootsSubscriber
900     arguments: ['@state']
901     tags:
902       - { name: event_subscriber }
903   entity.query:
904     class: Drupal\Core\Entity\Query\QueryFactory
905     arguments: ['@entity.manager']
906     calls:
907       - [setContainer, ['@service_container']]
908     deprecated: The "%service_id%" service is deprecated. Use the 'entity_type.manager' service to get an entity type's storage object and then call \Drupal\Core\Entity\EntityStorageInterface::getQuery() or \Drupal\Core\Entity\EntityStorageInterface::getAggregateQuery() instead. See https://www.drupal.org/node/2849874
909   entity.query.config:
910     class: Drupal\Core\Config\Entity\Query\QueryFactory
911     arguments: ['@config.factory', '@keyvalue', '@config.manager']
912     tags:
913       - { name: event_subscriber }
914   entity.query.sql:
915     class: Drupal\Core\Entity\Query\Sql\QueryFactory
916     arguments: ['@database']
917     tags:
918       - { name: backend_overridable }
919   pgsql.entity.query.sql:
920     class: Drupal\Core\Entity\Query\Sql\pgsql\QueryFactory
921     arguments: ['@database']
922   entity.query.null:
923     class: Drupal\Core\Entity\Query\Null\QueryFactory
924   entity.query.keyvalue:
925     class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
926     arguments: ['@keyvalue']
927   router.dumper:
928     class: Drupal\Core\Routing\MatcherDumper
929     arguments: ['@database', '@state']
930     tags:
931       - { name: backend_overridable }
932     lazy: true
933   router.builder:
934     class: Drupal\Core\Routing\RouteBuilder
935     arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@access_manager.check_provider']
936     lazy: true
937     tags:
938       - { name: needs_destruction }
939   menu.rebuild_subscriber:
940     class: Drupal\Core\EventSubscriber\MenuRouterRebuildSubscriber
941     arguments: ['@lock', '@plugin.manager.menu.link']
942     tags:
943       - { name: event_subscriber }
944   path.alias_storage:
945     class: Drupal\Core\Path\AliasStorage
946     arguments: ['@database', '@module_handler']
947     tags:
948       - { name: backend_overridable }
949   path.matcher:
950     class: Drupal\Core\Path\PathMatcher
951     arguments: ['@config.factory', '@current_route_match']
952   path.validator:
953     class: Drupal\Core\Path\PathValidator
954     arguments: ['@router', '@router.no_access_checks', '@current_user', '@path_processor_manager']
955
956 # The argument to the hashing service defined in services.yml, to the
957 # constructor of PhpassHashedPassword is the log2 number of iterations for
958 # password stretching.
959 # @todo increase by 1 every Drupal version in order to counteract increases in
960 # the speed and power of computers available to crack the hashes. The current
961 # password hashing method was introduced in Drupal 7 with a log2 count of 15.
962   password:
963     class: Drupal\Core\Password\PhpassHashedPassword
964     arguments: [16]
965   request_format_route_filter:
966     class: Drupal\Core\Routing\RequestFormatRouteFilter
967     tags:
968       - { name: route_filter }
969   method_filter:
970     class: Drupal\Core\Routing\MethodFilter
971     tags:
972       # The HTTP method route filter must run very early: it removes any routes
973       # whose requirements do not allow the HTTP method of the current request.
974       # Throws a 405 if no routes match the current request's HTTP method.
975       # (If it runs before content_type_header_matcher, it can ensure that only
976       # receives routes which can have a Content-Type request header.)
977       - { name: route_filter, priority: 10 }
978   content_type_header_matcher:
979     class: Drupal\Core\Routing\ContentTypeHeaderMatcher
980     tags:
981       # The Content-Type request header route filter must run early: it removes
982       # any routes whose requirements do not allow the Content-Type request
983       # header of the current request.
984       # Throws a 415 if no routes match the Content-Type request header of the
985       # current request, or if it has no Content-Type request header.
986       # Note it does nothing for GET requests.
987       - { name: route_filter, priority: 5 }
988   paramconverter_manager:
989     class: Drupal\Core\ParamConverter\ParamConverterManager
990     tags:
991       - { name: service_collector, tag: paramconverter, call: addConverter }
992   paramconverter_subscriber:
993     class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
994     tags:
995       - { name: event_subscriber }
996     arguments: ['@paramconverter_manager']
997   paramconverter.entity:
998     class: Drupal\Core\ParamConverter\EntityConverter
999     tags:
1000       - { name: paramconverter }
1001     arguments: ['@entity.manager', '@language_manager']
1002   paramconverter.entity_revision:
1003     class: Drupal\Core\ParamConverter\EntityRevisionParamConverter
1004     tags:
1005       - { name: paramconverter }
1006     arguments: ['@entity_type.manager', '@entity.repository']
1007   paramconverter.configentity_admin:
1008     class: Drupal\Core\ParamConverter\AdminPathConfigEntityConverter
1009     tags:
1010       # Use a higher priority than EntityConverter, see the class for details.
1011       - { name: paramconverter, priority: 5 }
1012     arguments: ['@entity.manager', '@config.factory', '@router.admin_context']
1013     lazy: true
1014   route_subscriber.module:
1015     class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
1016     tags:
1017       - { name: event_subscriber }
1018     arguments: ['@module_handler']
1019   resolver_manager.entity:
1020     class: Drupal\Core\Entity\EntityResolverManager
1021     arguments: ['@entity.manager', '@class_resolver']
1022   route_subscriber.entity:
1023     class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
1024     tags:
1025       - { name: event_subscriber }
1026     arguments: ['@resolver_manager.entity']
1027   ajax_response.subscriber:
1028     class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
1029     arguments: ['@ajax_response.attachments_processor']
1030     tags:
1031       - { name: event_subscriber }
1032   form_ajax_subscriber:
1033     class: Drupal\Core\Form\EventSubscriber\FormAjaxSubscriber
1034     arguments: ['@form_ajax_response_builder', '@string_translation', '@messenger']
1035     tags:
1036       - { name: event_subscriber }
1037   route_enhancer.param_conversion:
1038     class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
1039     arguments: ['@paramconverter_manager']
1040     tags:
1041       - { name: route_enhancer, priority: 5000 }
1042       - { name: event_subscriber }
1043   route_enhancer.form:
1044     class: Drupal\Core\Routing\Enhancer\FormRouteEnhancer
1045     tags:
1046       - { name: route_enhancer }
1047   route_enhancer.entity:
1048     class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
1049     tags:
1050       - { name: route_enhancer, priority: 20 }
1051   route_enhancer.entity_revision:
1052     class: Drupal\Core\Routing\Enhancer\EntityRevisionRouteEnhancer
1053     tags:
1054       - { name: route_enhancer }
1055   route_special_attributes_subscriber:
1056     class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
1057     tags:
1058       - { name: event_subscriber }
1059   route_http_method_subscriber:
1060     class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
1061     tags:
1062       - { name: event_subscriber }
1063   psr_response_view_subscriber:
1064     class: Drupal\Core\EventSubscriber\PsrResponseSubscriber
1065     arguments: ['@psr7.http_foundation_factory']
1066     tags:
1067       - { name: event_subscriber }
1068
1069   # Main content view subscriber plus the renderers it uses.
1070   main_content_view_subscriber:
1071     class: Drupal\Core\EventSubscriber\MainContentViewSubscriber
1072     arguments: ['@class_resolver', '@current_route_match', '%main_content_renderers%']
1073     tags:
1074       - { name: event_subscriber }
1075   renderer_non_html:
1076     class: Drupal\Core\EventSubscriber\RenderArrayNonHtmlSubscriber
1077     tags:
1078       - { name: event_subscriber }
1079   main_content_renderer.html:
1080     class: Drupal\Core\Render\MainContent\HtmlRenderer
1081     arguments: ['@title_resolver', '@plugin.manager.display_variant', '@event_dispatcher', '@module_handler', '@renderer', '@render_cache', '%renderer.config%']
1082     tags:
1083       - { name: render.main_content_renderer, format: html }
1084   main_content_renderer.ajax:
1085     class: Drupal\Core\Render\MainContent\AjaxRenderer
1086     arguments: ['@element_info']
1087     tags:
1088       - { name: render.main_content_renderer, format: drupal_ajax }
1089       - { name: render.main_content_renderer, format: iframeupload }
1090   main_content_renderer.dialog:
1091     class: Drupal\Core\Render\MainContent\DialogRenderer
1092     arguments: ['@title_resolver']
1093     tags:
1094       - { name: render.main_content_renderer, format: drupal_dialog }
1095   main_content_renderer.off_canvas:
1096     class: Drupal\Core\Render\MainContent\OffCanvasRenderer
1097     arguments: ['@title_resolver', '@renderer']
1098     tags:
1099       - { name: render.main_content_renderer, format: drupal_dialog.off_canvas }
1100   main_content_renderer.off_canvas_top:
1101     class: Drupal\Core\Render\MainContent\OffCanvasRenderer
1102     arguments: ['@title_resolver', '@renderer', 'top']
1103     tags:
1104       - { name: render.main_content_renderer, format: drupal_dialog.off_canvas_top }
1105   main_content_renderer.modal:
1106     class: Drupal\Core\Render\MainContent\ModalRenderer
1107     arguments: ['@title_resolver']
1108     tags:
1109       - { name: render.main_content_renderer, format: drupal_modal }
1110   controller.form:
1111     class: Drupal\Core\Controller\HtmlFormController
1112     arguments: ['@http_kernel.controller.argument_resolver', '@form_builder', '@class_resolver']
1113   controller.entity_form:
1114     class: Drupal\Core\Entity\HtmlEntityFormController
1115     arguments: ['@http_kernel.controller.argument_resolver', '@form_builder', '@entity.manager']
1116   form_ajax_response_builder:
1117     class: Drupal\Core\Form\FormAjaxResponseBuilder
1118     arguments: ['@main_content_renderer.ajax', '@current_route_match']
1119   router_listener:
1120     class: Symfony\Component\HttpKernel\EventListener\RouterListener
1121     tags:
1122       - { name: event_subscriber }
1123     arguments: ['@router', '@request_stack', '@router.request_context', NULL]
1124   options_request_listener:
1125     class: Drupal\Core\EventSubscriber\OptionsRequestSubscriber
1126     arguments: ['@router.route_provider']
1127     tags:
1128       - { name: event_subscriber }
1129   bare_html_page_renderer:
1130     class: Drupal\Core\Render\BareHtmlPageRenderer
1131     arguments: ['@renderer', '@html_response.attachments_processor']
1132     lazy: true
1133   private_key:
1134     class: Drupal\Core\PrivateKey
1135     arguments: ['@state']
1136   csrf_token:
1137     class: Drupal\Core\Access\CsrfTokenGenerator
1138     arguments: ['@private_key', '@session_manager.metadata_bag']
1139   access_arguments_resolver_factory:
1140     class: Drupal\Core\Access\AccessArgumentsResolverFactory
1141   access_manager:
1142     class: Drupal\Core\Access\AccessManager
1143     arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user', '@access_manager.check_provider']
1144   access_manager.check_provider:
1145     class: Drupal\Core\Access\CheckProvider
1146     calls:
1147       - [setContainer, ['@service_container']]
1148     public: false
1149   access_check.default:
1150     class: Drupal\Core\Access\DefaultAccessCheck
1151     tags:
1152       - { name: access_check, applies_to: _access }
1153   access_check.entity:
1154     class: Drupal\Core\Entity\EntityAccessCheck
1155     tags:
1156       - { name: access_check, applies_to: _entity_access }
1157   access_check.entity_create:
1158     class: Drupal\Core\Entity\EntityCreateAccessCheck
1159     arguments: ['@entity.manager']
1160     tags:
1161       - { name: access_check, applies_to: _entity_create_access }
1162   access_check.entity_create_any:
1163     class: Drupal\Core\Entity\EntityCreateAnyAccessCheck
1164     arguments: ['@entity_type.manager', '@entity_type.bundle.info']
1165     tags:
1166       - { name: access_check, applies_to: _entity_create_any_access }
1167   access_check.entity_delete_multiple:
1168     class: Drupal\Core\Entity\EntityDeleteMultipleAccessCheck
1169     arguments: ['@entity_type.manager', '@tempstore.private', '@request_stack']
1170     tags:
1171       - { name: access_check, applies_to: _entity_delete_multiple_access }
1172   access_check.theme:
1173     class: Drupal\Core\Theme\ThemeAccessCheck
1174     arguments: ['@theme_handler']
1175     tags:
1176       - { name: access_check, applies_to: _access_theme }
1177   access_check.custom:
1178     class: Drupal\Core\Access\CustomAccessCheck
1179     arguments: ['@controller_resolver', '@access_arguments_resolver_factory']
1180     tags:
1181       - { name: access_check, applies_to: _custom_access }
1182   access_check.csrf:
1183     class: Drupal\Core\Access\CsrfAccessCheck
1184     tags:
1185       - { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
1186     arguments: ['@csrf_token']
1187   access_check.header.csrf:
1188     class: Drupal\Core\Access\CsrfRequestHeaderAccessCheck
1189     arguments: ['@session_configuration', '@csrf_token']
1190     tags:
1191       - { name: access_check, needs_incoming_request: TRUE }
1192   maintenance_mode:
1193     class: Drupal\Core\Site\MaintenanceMode
1194     arguments: ['@state', '@current_user']
1195   maintenance_mode_subscriber:
1196     class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
1197     arguments: ['@maintenance_mode', '@config.factory', '@string_translation', '@url_generator', '@current_user', '@bare_html_page_renderer', '@messenger']
1198     tags:
1199       - { name: event_subscriber }
1200   path_subscriber:
1201     class: Drupal\Core\EventSubscriber\PathSubscriber
1202     tags:
1203       - { name: event_subscriber }
1204     arguments: ['@path.alias_manager', '@path.current']
1205   route_access_response_subscriber:
1206     class: Drupal\Core\EventSubscriber\RouteAccessResponseSubscriber
1207     tags:
1208       - { name: event_subscriber }
1209   client_error_response_subscriber:
1210     class: Drupal\Core\EventSubscriber\ClientErrorResponseSubscriber
1211     tags:
1212       - { name: event_subscriber }
1213   anonymous_user_response_subscriber:
1214     class: Drupal\Core\EventSubscriber\AnonymousUserResponseSubscriber
1215     tags:
1216       - { name: event_subscriber }
1217     arguments: ['@current_user']
1218   ajax_response.attachments_processor:
1219     class: Drupal\Core\Ajax\AjaxResponseAttachmentsProcessor
1220     tags:
1221     arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler']
1222   html_response.attachments_processor:
1223     class: Drupal\Core\Render\HtmlResponseAttachmentsProcessor
1224     tags:
1225     arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler']
1226   html_response.subscriber:
1227     class: Drupal\Core\EventSubscriber\HtmlResponseSubscriber
1228     tags:
1229       - { name: event_subscriber }
1230     arguments: ['@html_response.attachments_processor']
1231   finish_response_subscriber:
1232     class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
1233     tags:
1234       - { name: event_subscriber }
1235     arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy', '@cache_contexts_manager', '%http.response.debug_cacheability_headers%']
1236   response_generator_subscriber:
1237     class: Drupal\Core\EventSubscriber\ResponseGeneratorSubscriber
1238     tags:
1239       - { name: event_subscriber }
1240   redirect_response_subscriber:
1241     class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
1242     arguments: ['@unrouted_url_assembler', '@router.request_context']
1243     tags:
1244       - { name: event_subscriber }
1245   redirect_leading_slashes_subscriber:
1246     class: Drupal\Core\EventSubscriber\RedirectLeadingSlashesSubscriber
1247     tags:
1248       - { name: event_subscriber }
1249   request_close_subscriber:
1250     class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
1251     tags:
1252       - { name: event_subscriber }
1253     arguments: ['@module_handler']
1254   config_import_subscriber:
1255     class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
1256     tags:
1257       - { name: event_subscriber }
1258     arguments: ['@theme_handler']
1259   config_snapshot_subscriber:
1260     class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
1261     tags:
1262       - { name: event_subscriber }
1263     arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
1264   exception.needs_installer:
1265     class: Drupal\Core\EventSubscriber\ExceptionDetectNeedsInstallSubscriber
1266     arguments: ['@database']
1267     tags:
1268       - { name: event_subscriber }
1269   exception.default_json:
1270     class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
1271     tags:
1272       - { name: event_subscriber }
1273   exception.default_html:
1274     class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
1275     tags:
1276       - { name: event_subscriber }
1277     arguments: ['@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks']
1278   exception.final:
1279     class: Drupal\Core\EventSubscriber\FinalExceptionSubscriber
1280     tags:
1281       - { name: event_subscriber }
1282     arguments: ['@config.factory']
1283   exception.logger:
1284     class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
1285     tags:
1286       - { name: event_subscriber }
1287     arguments: ['@logger.factory']
1288   exception.custom_page_html:
1289     class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
1290     tags:
1291       - { name: event_subscriber }
1292     arguments: ['@config.factory', '@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks', '@access_manager']
1293   exception.fast_404_html:
1294     class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
1295     tags:
1296       - { name: event_subscriber }
1297     arguments: ['@config.factory', '@http_kernel']
1298   exception.test_site:
1299     class: Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
1300     tags:
1301       - { name: event_subscriber }
1302   exception.enforced_form_response:
1303     class: Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber
1304     tags:
1305       - { name: event_subscriber }
1306   route_processor_manager:
1307     class: Drupal\Core\RouteProcessor\RouteProcessorManager
1308     tags:
1309       - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
1310   path_processor_manager:
1311     class: Drupal\Core\PathProcessor\PathProcessorManager
1312     tags:
1313       - { name: service_collector, tag: path_processor_inbound, call: addInbound }
1314       - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
1315   path_processor_decode:
1316     class: Drupal\Core\PathProcessor\PathProcessorDecode
1317     tags:
1318       - { name: path_processor_inbound, priority: 1000 }
1319   path_processor_front:
1320     class: Drupal\Core\PathProcessor\PathProcessorFront
1321     tags:
1322       - { name: path_processor_inbound, priority: 200 }
1323       - { name: path_processor_outbound, priority: 200 }
1324     arguments: ['@config.factory']
1325   route_processor_current:
1326     class: Drupal\Core\RouteProcessor\RouteProcessorCurrent
1327     arguments: ['@current_route_match']
1328     tags:
1329       - { name: route_processor_outbound, priority: 200 }
1330   path_processor_alias:
1331     class: Drupal\Core\PathProcessor\PathProcessorAlias
1332     tags:
1333       - { name: path_processor_inbound, priority: 100 }
1334       - { name: path_processor_outbound, priority: 300 }
1335     arguments: ['@path.alias_manager']
1336   route_processor_csrf:
1337     class: Drupal\Core\Access\RouteProcessorCsrf
1338     tags:
1339       - { name: route_processor_outbound }
1340     arguments: ['@csrf_token']
1341   transliteration:
1342     class: Drupal\Core\Transliteration\PhpTransliteration
1343     arguments: [null, '@module_handler']
1344   flood:
1345     class: Drupal\Core\Flood\DatabaseBackend
1346     arguments: ['@database', '@request_stack']
1347     tags:
1348       - { name: backend_overridable }
1349   plugin.manager.mail:
1350     class: Drupal\Core\Mail\MailManager
1351     arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation', '@renderer']
1352   plugin.manager.condition:
1353     class: Drupal\Core\Condition\ConditionManager
1354     parent: default_plugin_manager
1355   plugin.manager.element_info:
1356     class: Drupal\Core\Render\ElementInfoManager
1357     arguments: ['@container.namespaces', '@cache.discovery', '@cache_tags.invalidator', '@module_handler', '@theme.manager']
1358   stream_wrapper_manager:
1359     class: Drupal\Core\StreamWrapper\StreamWrapperManager
1360     calls:
1361       - [setContainer, ['@service_container']]
1362   stream_wrapper.public:
1363     class: Drupal\Core\StreamWrapper\PublicStream
1364     tags:
1365       - { name: stream_wrapper, scheme: public }
1366   stream_wrapper.temporary:
1367     class: Drupal\Core\StreamWrapper\TemporaryStream
1368     tags:
1369       - { name: stream_wrapper, scheme: temporary }
1370   kernel_destruct_subscriber:
1371     class: Drupal\Core\EventSubscriber\KernelDestructionSubscriber
1372     tags:
1373       - { name: event_subscriber }
1374     calls:
1375       - [setContainer, ['@service_container']]
1376   image.toolkit.manager:
1377     class: Drupal\Core\ImageToolkit\ImageToolkitManager
1378     arguments: ['@config.factory']
1379     parent: default_plugin_manager
1380     tags:
1381       - { name: plugin_manager_cache_clear }
1382   image.toolkit.operation.manager:
1383     class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
1384     arguments: ['@logger.channel.image', '@image.toolkit.manager']
1385     parent: default_plugin_manager
1386     tags:
1387       - { name: plugin_manager_cache_clear }
1388   image.factory:
1389     class: Drupal\Core\Image\ImageFactory
1390     arguments: ['@image.toolkit.manager']
1391   breadcrumb:
1392     class: Drupal\Core\Breadcrumb\BreadcrumbManager
1393     arguments: ['@module_handler']
1394     tags:
1395       - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
1396   token:
1397     class: Drupal\Core\Utility\Token
1398     arguments: ['@module_handler', '@cache.default', '@language_manager', '@cache_tags.invalidator', '@renderer']
1399   batch.storage:
1400     class: Drupal\Core\Batch\BatchStorage
1401     arguments: ['@database', '@session', '@csrf_token']
1402     tags:
1403       - { name: backend_overridable }
1404     lazy: true
1405   replica_database_ignore__subscriber:
1406     class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
1407     tags:
1408       - {name: event_subscriber}
1409   country_manager:
1410     class: Drupal\Core\Locale\CountryManager
1411     arguments: ['@module_handler']
1412   date.formatter:
1413     class: Drupal\Core\Datetime\DateFormatter
1414     arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory', '@request_stack']
1415   feed.bridge.reader:
1416     class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
1417     calls:
1418       - [setContainer, ['@service_container']]
1419       - [setStandalone, ['\Zend\Feed\Reader\StandaloneExtensionManager']]
1420     arguments: ['feed.reader.']
1421   feed.bridge.writer:
1422     class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
1423     calls:
1424       - [setContainer, ['@service_container']]
1425       - [setStandalone, ['\Zend\Feed\Writer\StandaloneExtensionManager']]
1426     arguments: ['feed.writer.']
1427 # Zend Feed reader plugins. Plugin instances should not be shared.
1428   feed.reader.dublincoreentry:
1429     class: Zend\Feed\Reader\Extension\DublinCore\Entry
1430     shared: false
1431   feed.reader.dublincorefeed:
1432     class: Zend\Feed\Reader\Extension\DublinCore\Feed
1433     shared: false
1434   feed.reader.contententry:
1435     class: Zend\Feed\Reader\Extension\Content\Entry
1436     shared: false
1437   feed.reader.atomentry:
1438     class: Zend\Feed\Reader\Extension\Atom\Entry
1439     shared: false
1440   feed.reader.atomfeed:
1441     class: Zend\Feed\Reader\Extension\Atom\Feed
1442     shared: false
1443   feed.reader.slashentry:
1444     class: Zend\Feed\Reader\Extension\Slash\Entry
1445     shared: false
1446   feed.reader.wellformedwebentry:
1447     class: Zend\Feed\Reader\Extension\WellFormedWeb\Entry
1448     shared: false
1449   feed.reader.threadentry:
1450     class: Zend\Feed\Reader\Extension\Thread\Entry
1451     shared: false
1452   feed.reader.podcastentry:
1453     class: Zend\Feed\Reader\Extension\Podcast\Entry
1454     shared: false
1455   feed.reader.podcastfeed:
1456     class: Zend\Feed\Reader\Extension\Podcast\Feed
1457     shared: false
1458 # Zend Feed writer plugins. Plugins should be set as prototype scope.
1459   feed.writer.atomrendererfeed:
1460     class: Zend\Feed\Writer\Extension\Atom\Renderer\Feed
1461     shared: false
1462   feed.writer.contentrendererentry:
1463     class: Zend\Feed\Writer\Extension\Content\Renderer\Entry
1464     shared: false
1465   feed.writer.dublincorerendererentry:
1466     class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Entry
1467     shared: false
1468   feed.writer.dublincorerendererfeed:
1469     class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
1470     shared: false
1471   feed.writer.itunesentry:
1472     class: Zend\Feed\Writer\Extension\ITunes\Entry
1473     shared: false
1474   feed.writer.itunesfeed:
1475     class: Zend\Feed\Writer\Extension\ITunes\Feed
1476     shared: false
1477   feed.writer.itunesrendererentry:
1478     class: Zend\Feed\Writer\Extension\ITunes\Renderer\Entry
1479     shared: false
1480   feed.writer.itunesrendererfeed:
1481     class: Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
1482     shared: false
1483   feed.writer.slashrendererentry:
1484     class: Zend\Feed\Writer\Extension\Slash\Renderer\Entry
1485     shared: false
1486   feed.writer.threadingrendererentry:
1487     class: Zend\Feed\Writer\Extension\Threading\Renderer\Entry
1488     shared: false
1489   feed.writer.wellformedwebrendererentry:
1490     class: Zend\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry
1491     shared: false
1492   theme.manager:
1493     class: Drupal\Core\Theme\ThemeManager
1494     arguments: ['@app.root', '@theme.negotiator', '@theme.initialization', '@module_handler']
1495     calls:
1496       - [setThemeRegistry, ['@theme.registry']]
1497   theme.initialization:
1498     class: Drupal\Core\Theme\ThemeInitialization
1499     arguments: ['@app.root', '@theme_handler', '@cache.bootstrap', '@module_handler']
1500   theme.registry:
1501     class: Drupal\Core\Theme\Registry
1502     arguments: ['@app.root', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization', null, '@cache.bootstrap']
1503     tags:
1504       - { name: needs_destruction }
1505     calls:
1506       - [setThemeManager, ['@theme.manager']]
1507   authentication:
1508     class: Drupal\Core\Authentication\AuthenticationManager
1509     arguments: ['@authentication_collector']
1510   authentication_collector:
1511     class: Drupal\Core\Authentication\AuthenticationCollector
1512     tags:
1513       - { name: service_collector, tag: authentication_provider, call: addProvider }
1514   authentication_subscriber:
1515     class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
1516     arguments: ['@authentication', '@current_user']
1517     tags:
1518       - { name: event_subscriber }
1519   account_switcher:
1520     class: Drupal\Core\Session\AccountSwitcher
1521     arguments: ['@current_user', '@session_handler.write_safe']
1522   user_permissions_hash_generator:
1523     class: Drupal\Core\Session\PermissionsHashGenerator
1524     arguments: ['@private_key', '@cache.bootstrap', '@cache.static']
1525   current_user:
1526     class: Drupal\Core\Session\AccountProxy
1527   session_configuration:
1528     class: Drupal\Core\Session\SessionConfiguration
1529     arguments: ['%session.storage.options%']
1530   session:
1531     class: Symfony\Component\HttpFoundation\Session\Session
1532     arguments: ['@session_manager', '@session.attribute_bag', '@session.flash_bag']
1533   session.flash_bag:
1534     class: Symfony\Component\HttpFoundation\Session\Flash\FlashBag
1535     public: false
1536   session.attribute_bag:
1537     class: Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag
1538     public: false
1539   session_handler:
1540     alias: session_handler.storage
1541   session_handler.storage:
1542     class: Drupal\Core\Session\SessionHandler
1543     arguments: ['@request_stack', '@database']
1544     tags:
1545       - { name: backend_overridable }
1546   session_handler.write_check:
1547     class: Symfony\Component\HttpFoundation\Session\Storage\Handler\WriteCheckSessionHandler
1548     tags:
1549       - { name: session_handler_proxy, priority: 100 }
1550   session_handler.write_safe:
1551     class: Drupal\Core\Session\WriteSafeSessionHandler
1552     tags:
1553       - { name: session_handler_proxy, priority: 150 }
1554   session_manager:
1555     class: Drupal\Core\Session\SessionManager
1556     arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@session_configuration', '@session_handler']
1557     tags:
1558       - { name: backend_overridable }
1559     calls:
1560       - [setWriteSafeHandler, ['@session_handler.write_safe']]
1561   session_manager.metadata_bag:
1562     class: Drupal\Core\Session\MetadataBag
1563     arguments: ['@settings']
1564   asset.css.collection_renderer:
1565     class: Drupal\Core\Asset\CssCollectionRenderer
1566     arguments: [ '@state' ]
1567   asset.css.collection_optimizer:
1568     class: Drupal\Core\Asset\CssCollectionOptimizer
1569     arguments: [ '@asset.css.collection_grouper', '@asset.css.optimizer', '@asset.css.dumper', '@state' ]
1570   asset.css.optimizer:
1571     class: Drupal\Core\Asset\CssOptimizer
1572   asset.css.collection_grouper:
1573     class: Drupal\Core\Asset\CssCollectionGrouper
1574   asset.css.dumper:
1575     class: Drupal\Core\Asset\AssetDumper
1576   asset.js.collection_renderer:
1577     class: Drupal\Core\Asset\JsCollectionRenderer
1578     arguments: [ '@state' ]
1579   asset.js.collection_optimizer:
1580     class: Drupal\Core\Asset\JsCollectionOptimizer
1581     arguments: [ '@asset.js.collection_grouper', '@asset.js.optimizer', '@asset.js.dumper', '@state' ]
1582   asset.js.optimizer:
1583     class: Drupal\Core\Asset\JsOptimizer
1584   asset.js.collection_grouper:
1585     class: Drupal\Core\Asset\JsCollectionGrouper
1586   asset.js.dumper:
1587     class: Drupal\Core\Asset\AssetDumper
1588   library.discovery:
1589     class: Drupal\Core\Asset\LibraryDiscovery
1590     arguments: ['@library.discovery.collector']
1591   library.discovery.collector:
1592     class: Drupal\Core\Asset\LibraryDiscoveryCollector
1593     arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
1594     tags:
1595       - { name: needs_destruction }
1596   library.discovery.parser:
1597     class: Drupal\Core\Asset\LibraryDiscoveryParser
1598     arguments: ['@app.root', '@module_handler', '@theme.manager']
1599   library.dependency_resolver:
1600     class: Drupal\Core\Asset\LibraryDependencyResolver
1601     arguments: ['@library.discovery']
1602   asset.resolver:
1603     class: Drupal\Core\Asset\AssetResolver
1604     arguments: ['@library.discovery', '@library.dependency_resolver', '@module_handler', '@theme.manager', '@language_manager', '@cache.data']
1605   info_parser:
1606     class: Drupal\Core\Extension\InfoParser
1607   twig:
1608     class: Drupal\Core\Template\TwigEnvironment
1609     arguments: ['@app.root', '@cache.default', '%twig_extension_hash%', '@state', '@twig.loader', '%twig.config%']
1610     tags:
1611       - { name: service_collector, tag: 'twig.extension', call: addExtension }
1612   twig.extension:
1613     class: Drupal\Core\Template\TwigExtension
1614     arguments: ['@renderer', '@url_generator', '@theme.manager', '@date.formatter']
1615     tags:
1616       - { name: twig.extension, priority: 100 }
1617   # @todo Figure out what to do about debugging functions.
1618   # @see https://www.drupal.org/node/1804998
1619   twig.extension.debug:
1620     class: Twig_Extension_Debug
1621     tags:
1622       - { name: twig.extension }
1623   twig.loader:
1624     class: Twig_Loader_Chain
1625     public: false
1626     tags:
1627       - { name: service_collector, tag: twig.loader, call: addLoader, required: TRUE }
1628   twig.loader.filesystem:
1629     class: Drupal\Core\Template\Loader\FilesystemLoader
1630     # We use '.' instead of '@app.root' as the path for non-namespaced template
1631     # files so that they match the relative paths of templates loaded via the
1632     # theme registry or via Twig namespaces.
1633     arguments: ['.', '@module_handler', '@theme_handler']
1634     tags:
1635       - { name: twig.loader, priority: 100 }
1636   twig.loader.theme_registry:
1637     class: Drupal\Core\Template\Loader\ThemeRegistryLoader
1638     arguments: ['@theme.registry']
1639     tags:
1640       - { name: twig.loader, priority: 0 }
1641   twig.loader.string:
1642     class: Drupal\Core\Template\Loader\StringLoader
1643     tags:
1644       - { name: twig.loader, priority: -100 }
1645   element_info:
1646     alias: plugin.manager.element_info
1647   file.mime_type.guesser:
1648     class: Drupal\Core\File\MimeType\MimeTypeGuesser
1649     arguments: ['@stream_wrapper_manager']
1650     tags:
1651       - { name: service_collector, tag: mime_type_guesser, call: addGuesser }
1652     lazy: true
1653   file.mime_type.guesser.extension:
1654     class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
1655     arguments: ['@module_handler']
1656     tags:
1657       - { name: mime_type_guesser }
1658     lazy: true
1659   # Currently needs to be public as it is called by
1660   # \Drupal\Core\Render\Element\StatusMessages.
1661   # @todo Consider making this service private again after
1662   #   https://www.drupal.org/node/2367555 lands.
1663   render_placeholder_generator:
1664     class: Drupal\Core\Render\PlaceholderGenerator
1665     arguments: ['%renderer.config%']
1666   render_cache:
1667     class: Drupal\Core\Render\PlaceholderingRenderCache
1668     arguments: ['@request_stack', '@cache_factory', '@cache_contexts_manager', '@render_placeholder_generator']
1669   renderer:
1670     class: Drupal\Core\Render\Renderer
1671     arguments: ['@controller_resolver', '@theme.manager', '@plugin.manager.element_info', '@render_placeholder_generator', '@render_cache', '@request_stack', '%renderer.config%']
1672   early_rendering_controller_wrapper_subscriber:
1673     class: Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber
1674     arguments: ['@http_kernel.controller.argument_resolver', '@renderer']
1675     tags:
1676       - { name: event_subscriber }
1677   # Placeholder strategies for rendering placeholders.
1678   html_response.placeholder_strategy_subscriber:
1679     class: Drupal\Core\EventSubscriber\HtmlResponsePlaceholderStrategySubscriber
1680     tags:
1681       - { name: event_subscriber }
1682     arguments: ['@placeholder_strategy']
1683   placeholder_strategy:
1684     class: Drupal\Core\Render\Placeholder\ChainedPlaceholderStrategy
1685     tags:
1686       - { name: service_collector, tag: placeholder_strategy, call: addPlaceholderStrategy }
1687   placeholder_strategy.single_flush:
1688     class: Drupal\Core\Render\Placeholder\SingleFlushStrategy
1689     tags:
1690       - { name: placeholder_strategy, priority: -1000 }
1691   email.validator:
1692     class: Egulias\EmailValidator\EmailValidator
1693   update.post_update_registry:
1694     class: Drupal\Core\Update\UpdateRegistry
1695     factory: ['@update.post_update_registry_factory', create]
1696   update.post_update_registry_factory:
1697     class: Drupal\Core\Update\UpdateRegistryFactory
1698     parent: container.trait
1699   uuid:
1700     class: Drupal\Component\Uuid\Php
1701   response_filter.active_link:
1702     class: Drupal\Core\EventSubscriber\ActiveLinkResponseFilter
1703     arguments: ['@current_user', '@path.current', '@path.matcher', '@language_manager']
1704     tags:
1705       - { name: event_subscriber }
1706   response_filter.rss.relative_url:
1707     class: Drupal\Core\EventSubscriber\RssResponseRelativeUrlFilter
1708     tags:
1709       - { name: event_subscriber }
1710   messenger:
1711     class: Drupal\Core\Messenger\Messenger
1712     arguments: ['@session.flash_bag', '@page_cache_kill_switch']
1713   tempstore.private:
1714     class: Drupal\Core\TempStore\PrivateTempStoreFactory
1715     arguments: ['@keyvalue.expirable', '@lock', '@current_user', '@request_stack', '%tempstore.expire%']
1716     tags:
1717       - { name: backend_overridable }
1718   tempstore.shared:
1719     class: Drupal\Core\TempStore\SharedTempStoreFactory
1720     arguments: ['@keyvalue.expirable', '@lock', '@request_stack', '%tempstore.expire%']
1721     tags:
1722       - { name: backend_overridable }