core.services.yml

Same filename and directory in other branches
  1. 10 core/core.services.yml
  2. 9 core/core.services.yml
  3. 8.9.x core/core.services.yml
  4. main core/core.services.yml
core/core.services.yml

File

core/core.services.yml

View source
  1. parameters:
  2. # The app.root and site.path parameters are dynamically set by
  3. # \Drupal\Core\DrupalKernel::initializeContainer(). They are listed here to
  4. # allow IDEs to autocomplete them when writing new service YAML files.
  5. app.root: ''
  6. site.path: ''
  7. # \Drupal\Core\Cache\ListCacheBinsPass::process() will override this but defining this allows the cache system to
  8. # function properly before that runs.
  9. cache_default_bin_backends: []
  10. memory_cache_default_bin_backends: []
  11. entity.memory_cache.slots: 1000
  12. security.enable_super_user: true
  13. core.moved_classes:
  14. 'Drupal\Core\StringTranslation\TranslationWrapper':
  15. class: 'Drupal\Core\StringTranslation\TranslatableMarkup'
  16. 'Doctrine\Common\Annotations\AnnotationException':
  17. class: 'Drupal\Component\Annotation\Doctrine\AnnotationException'
  18. deprecation_version: drupal:11.3.0
  19. removed_version: drupal:12.0.0
  20. change_record: https://www.drupal.org/node/3551049
  21. session.storage.options:
  22. gc_probability: 1
  23. gc_divisor: 100
  24. gc_maxlifetime: 200000
  25. cookie_lifetime: 2000000
  26. cookie_samesite: Lax
  27. name_suffix: ''
  28. twig.config:
  29. debug: false
  30. auto_reload: null
  31. cache: true
  32. use_yield: true
  33. allowed_file_extensions:
  34. - css
  35. - html
  36. - js
  37. - svg
  38. - twig
  39. renderer.config:
  40. required_cache_contexts: ['languages:language_interface', 'theme', 'user.permissions']
  41. auto_placeholder_conditions:
  42. max-age: 0
  43. contexts: ['session', 'user']
  44. tags: []
  45. debug: false
  46. factory.keyvalue:
  47. default: keyvalue.database
  48. http.response.debug_cacheability_headers: false
  49. factory.keyvalue.expirable:
  50. default: keyvalue.expirable.database
  51. filter_protocols:
  52. - http
  53. - https
  54. - ftp
  55. - news
  56. - nntp
  57. - tel
  58. - telnet
  59. - mailto
  60. - irc
  61. - ssh
  62. - sftp
  63. - webcal
  64. - rtsp
  65. cors.config:
  66. enabled: false
  67. allowedHeaders: []
  68. allowedMethods: []
  69. allowedOrigins: ['*']
  70. exposedHeaders: false
  71. maxAge: false
  72. supportsCredentials: false
  73. tempstore.expire: 604800
  74. queue.config:
  75. suspendMaximumWait: 30.0
  76. stream_wrapper.allowed_file_extensions:
  77. module:
  78. - json
  79. theme:
  80. - json
  81. # Can be argon2i, argon2id or 2y (bcrypt). Setting to NULL (~) will use PASSWORD_DEFAULT.
  82. # See https://www.php.net/password_hash
  83. password.algorithm: ~
  84. # Options passed to password_hash. See https://www.php.net/password_hash
  85. password.options: []
  86. services:
  87. _defaults:
  88. autoconfigure: true
  89. plugin.manager.config_action:
  90. class: Drupal\Core\Config\Action\ConfigActionManager
  91. parent: default_plugin_manager
  92. arguments: ['@config.manager', '@config.storage', '@config.typed', '@config.factory']
  93. Drupal\Core\DefaultContent\Importer:
  94. autowire: true
  95. Drupal\Core\DefaultContent\Exporter:
  96. autowire: true
  97. calls:
  98. - [setLogger, ['@logger.channel.default_content']]
  99. Drupal\Core\DefaultContent\AdminAccountSwitcher:
  100. arguments:
  101. $isSuperUserAccessEnabled: '%security.enable_super_user%'
  102. autowire: true
  103. public: false
  104. # Simple cache contexts, directly derived from the request context.
  105. cache_context.ip:
  106. class: Drupal\Core\Cache\Context\IpCacheContext
  107. arguments: ['@request_stack']
  108. tags:
  109. - { name: cache.context }
  110. cache_context.protocol_version:
  111. class: Drupal\Core\Cache\Context\ProtocolVersionCacheContext
  112. arguments: ['@request_stack']
  113. tags:
  114. - { name: cache.context }
  115. cache_context.headers:
  116. class: Drupal\Core\Cache\Context\HeadersCacheContext
  117. arguments: ['@request_stack']
  118. tags:
  119. - { name: cache.context }
  120. cache_context.cookies:
  121. class: Drupal\Core\Cache\Context\CookiesCacheContext
  122. arguments: ['@request_stack']
  123. tags:
  124. - { name: cache.context }
  125. cache_context.session:
  126. class: Drupal\Core\Cache\Context\SessionCacheContext
  127. arguments: ['@request_stack']
  128. tags:
  129. - { name: cache.context}
  130. cache_context.session.exists:
  131. class: Drupal\Core\Cache\Context\SessionExistsCacheContext
  132. arguments: ['@session_configuration', '@request_stack']
  133. tags:
  134. - { name: cache.context}
  135. cache_context.request_format:
  136. class: Drupal\Core\Cache\Context\RequestFormatCacheContext
  137. arguments: ['@request_stack']
  138. tags:
  139. - { name: cache.context }
  140. cache_context.url:
  141. class: Drupal\Core\Cache\Context\UrlCacheContext
  142. arguments: ['@request_stack']
  143. tags:
  144. - { name: cache.context }
  145. cache_context.url.site:
  146. class: Drupal\Core\Cache\Context\SiteCacheContext
  147. arguments: ['@request_stack']
  148. tags:
  149. - { name: cache.context }
  150. cache_context.url.path:
  151. class: Drupal\Core\Cache\Context\PathCacheContext
  152. arguments: ['@request_stack']
  153. tags:
  154. - { name: cache.context }
  155. cache_context.url.path.parent:
  156. class: Drupal\Core\Cache\Context\PathParentCacheContext
  157. arguments: ['@request_stack']
  158. tags:
  159. - { name: cache.context }
  160. cache_context.url.path.is_front:
  161. class: Drupal\Core\Cache\Context\IsFrontPathCacheContext
  162. arguments: ['@path.matcher']
  163. tags:
  164. - { name: cache.context }
  165. cache_context.url.query_args:
  166. class: Drupal\Core\Cache\Context\QueryArgsCacheContext
  167. arguments: ['@request_stack']
  168. tags:
  169. - { name: cache.context }
  170. cache_context.url.query_args.pagers:
  171. class: Drupal\Core\Cache\Context\PagersCacheContext
  172. arguments: ['@pager.parameters']
  173. tags:
  174. - { name: cache.context }
  175. # Complex cache contexts, that depend on the routing system.
  176. cache_context.route:
  177. class: Drupal\Core\Cache\Context\RouteCacheContext
  178. arguments: ['@current_route_match']
  179. tags:
  180. - { name: cache.context }
  181. cache_context.route.name:
  182. class: Drupal\Core\Cache\Context\RouteNameCacheContext
  183. arguments: ['@current_route_match']
  184. tags:
  185. - { name: cache.context }
  186. cache_context.route.menu_active_trails:
  187. class: Drupal\Core\Cache\Context\MenuActiveTrailsCacheContext
  188. arguments: ['@menu.active_trail']
  189. tags:
  190. - { name: cache.context }
  191. # Complex cache contexts, that may be calculated from a combination of
  192. # multiple aspects of the request context plus additional logic. Hence they
  193. # are their own roots.
  194. cache_context.user:
  195. class: Drupal\Core\Cache\Context\UserCacheContext
  196. arguments: ['@current_user']
  197. tags:
  198. - { name: cache.context}
  199. cache_context.user.permissions:
  200. class: Drupal\Core\Cache\Context\AccountPermissionsCacheContext
  201. arguments: ['@current_user', '@user_permissions_hash_generator']
  202. tags:
  203. - { name: cache.context}
  204. cache_context.user.roles:
  205. class: Drupal\Core\Cache\Context\UserRolesCacheContext
  206. arguments: ['@current_user']
  207. tags:
  208. - { name: cache.context}
  209. cache_context.user.is_super_user:
  210. class: Drupal\Core\Cache\Context\IsSuperUserCacheContext
  211. arguments: ['@current_user']
  212. tags:
  213. - { name: cache.context}
  214. cache_context.languages:
  215. class: Drupal\Core\Cache\Context\LanguagesCacheContext
  216. arguments: ['@language_manager']
  217. tags:
  218. - { name: cache.context}
  219. cache_context.theme:
  220. class: Drupal\Core\Cache\Context\ThemeCacheContext
  221. arguments: ['@theme.manager']
  222. tags:
  223. - { name: cache.context}
  224. cache_context.timezone:
  225. class: Drupal\Core\Cache\Context\TimeZoneCacheContext
  226. tags:
  227. - { name: cache.context}
  228. cache_factory:
  229. class: Drupal\Core\Cache\CacheFactory
  230. arguments: ['@settings', '%cache_default_bin_backends%', '%memory_cache_default_bin_backends%']
  231. calls:
  232. - [setContainer, ['@service_container']]
  233. Drupal\Core\Cache\CacheFactoryInterface: '@cache_factory'
  234. variation_cache_factory:
  235. class: Drupal\Core\Cache\VariationCacheFactory
  236. arguments: ['@request_stack', '@cache_factory', '@cache_contexts_manager']
  237. Drupal\Core\Cache\VariationCacheFactory: '@variation_cache_factory'
  238. cache_contexts_manager:
  239. class: Drupal\Core\Cache\Context\CacheContextsManager
  240. arguments: ['@service_container', '%cache_contexts%' ]
  241. Drupal\Core\Cache\Context\CacheContextsManager: '@cache_contexts_manager'
  242. cache_tags.invalidator:
  243. class: Drupal\Core\Cache\CacheTagsInvalidator
  244. tags:
  245. - { name: service_collector, call: addInvalidator, tag: cache_tags_invalidator }
  246. - { name: service_collector, call: addBin, tag: cache.bin }
  247. - { name: service_collector, call: addBin, tag: cache.bin.memory }
  248. Drupal\Core\Cache\CacheTagsInvalidatorInterface: '@cache_tags.invalidator'
  249. cache_tags.invalidator.checksum:
  250. class: Drupal\Core\Cache\DatabaseCacheTagsChecksum
  251. arguments: ['@database']
  252. tags:
  253. - { name: cache_tags_invalidator}
  254. - { name: backend_overridable }
  255. Drupal\Core\Cache\CacheTagsChecksumInterface: '@cache_tags.invalidator.checksum'
  256. cache_tags.preloader:
  257. class: Drupal\Core\Cache\EventSubscriber\CacheTagPreloadSubscriber
  258. autowire: true
  259. cache.backend.chainedfast:
  260. class: Drupal\Core\Cache\ChainedFastBackendFactory
  261. arguments: ['@settings']
  262. calls:
  263. - [setContainer, ['@service_container']]
  264. cache.backend.database:
  265. class: Drupal\Core\Cache\DatabaseBackendFactory
  266. arguments: ['@database', '@cache_tags.invalidator.checksum', '@settings', '@serialization.phpserialize', '@datetime.time']
  267. tags:
  268. - { name: backend_overridable }
  269. cache.backend.apcu:
  270. class: Drupal\Core\Cache\ApcuBackendFactory
  271. arguments: ['%app.root%', '%site.path%', '@cache_tags.invalidator.checksum', '@datetime.time']
  272. cache.backend.php:
  273. class: Drupal\Core\Cache\PhpBackendFactory
  274. arguments: ['@cache_tags.invalidator.checksum', '@datetime.time']
  275. cache.backend.memory:
  276. class: Drupal\Core\Cache\MemoryBackendFactory
  277. arguments: ['@datetime.time']
  278. deprecated: 'The "%service_id%" service is deprecated in drupal:11.3.0 and is removed from drupal:13.0.0. Use cache.backend.memory.memory instead. See https://www.drupal.org/node/3546856'
  279. cache.backend.memory.memory:
  280. class: Drupal\Core\Cache\MemoryCache\MemoryCacheFactory
  281. arguments: ['@datetime.time']
  282. # A special cache bin that does not persist beyond the length of the request.
  283. cache.static:
  284. class: Drupal\Core\Cache\CacheBackendInterface
  285. tags:
  286. - { name: cache.bin, default_backend: cache.backend.memory }
  287. deprecated: 'The "%service_id%" service is deprecated in drupal:11.3.0 and is removed from drupal:13.0.0. Use the cache.memory bin instead. See https://www.drupal.org/node/3546856'
  288. factory: ['@cache_factory', 'get']
  289. arguments: [static]
  290. cache.bootstrap:
  291. class: Drupal\Core\Cache\CacheBackendInterface
  292. tags:
  293. - { name: cache.bin, default_backend: cache.backend.chainedfast }
  294. factory: ['@cache_factory', 'get']
  295. arguments: [bootstrap]
  296. cache.config:
  297. class: Drupal\Core\Cache\CacheBackendInterface
  298. tags:
  299. - { name: cache.bin, default_backend: cache.backend.chainedfast }
  300. factory: ['@cache_factory', 'get']
  301. arguments: [config]
  302. cache.default:
  303. class: Drupal\Core\Cache\CacheBackendInterface
  304. tags:
  305. - { name: cache.bin }
  306. factory: ['@cache_factory', 'get']
  307. arguments: [default]
  308. cache.entity:
  309. class: Drupal\Core\Cache\CacheBackendInterface
  310. tags:
  311. - { name: cache.bin }
  312. factory: ['@cache_factory', 'get']
  313. arguments: [entity]
  314. cache.menu:
  315. class: Drupal\Core\Cache\CacheBackendInterface
  316. tags:
  317. - { name: cache.bin }
  318. factory: ['@cache_factory', 'get']
  319. arguments: [menu]
  320. cache.render:
  321. class: Drupal\Core\Cache\CacheBackendInterface
  322. tags:
  323. - { name: cache.bin }
  324. factory: ['@cache_factory', 'get']
  325. arguments: [render]
  326. cache.access_policy:
  327. class: Drupal\Core\Cache\CacheBackendInterface
  328. tags:
  329. - { name: cache.bin }
  330. factory: ['@cache_factory', 'get']
  331. arguments: [access_policy]
  332. cache.access_policy_memory:
  333. class: Drupal\Core\Cache\CacheBackendInterface
  334. tags:
  335. - { name: cache.bin.memory, default_backend: cache.backend.memory.memory }
  336. factory: ['@cache_factory', 'get']
  337. arguments: [access_policy_memory]
  338. cache.data:
  339. class: Drupal\Core\Cache\CacheBackendInterface
  340. tags:
  341. - { name: cache.bin }
  342. factory: ['@cache_factory', 'get']
  343. arguments: [data]
  344. cache.discovery:
  345. class: Drupal\Core\Cache\CacheBackendInterface
  346. tags:
  347. - { name: cache.bin, default_backend: cache.backend.chainedfast }
  348. factory: ['@cache_factory', 'get']
  349. arguments: [discovery]
  350. cache.memory:
  351. class: Drupal\Core\Cache\MemoryCache\MemoryCacheInterface
  352. tags:
  353. - { name: cache.bin.memory, default_backend: cache.backend.memory.memory }
  354. factory: ['@cache_factory', 'get']
  355. arguments: [memory]
  356. cache_prewarmer:
  357. class: Drupal\Core\PreWarm\CachePreWarmer
  358. arguments: ['@class_resolver']
  359. tags:
  360. - { name: service_id_collector, tag: cache_prewarmable }
  361. Drupal\Core\PreWarm\CachePreWarmerInterface: '@cache_prewarmer'
  362. variation_cache.access_policy:
  363. class: Drupal\Core\Cache\VariationCacheInterface
  364. factory: ['@variation_cache_factory', 'get']
  365. arguments: [access_policy]
  366. variation_cache.access_policy_memory:
  367. class: Drupal\Core\Cache\VariationCacheInterface
  368. factory: ['@variation_cache_factory', 'get']
  369. arguments: [access_policy_memory]
  370. Drupal\Core\Asset\AssetQueryStringInterface: '@asset.query_string'
  371. asset.query_string:
  372. class: Drupal\Core\Asset\AssetQueryString
  373. arguments:
  374. - '@state'
  375. - '@datetime.time'
  376. cache_router_rebuild_subscriber:
  377. class: Drupal\Core\EventSubscriber\CacheRouterRebuildSubscriber
  378. page_cache_request_policy:
  379. class: Drupal\Core\PageCache\DefaultRequestPolicy
  380. arguments: ['@session_configuration']
  381. tags:
  382. - { name: service_collector, tag: page_cache_request_policy, call: addPolicy}
  383. Drupal\Core\PageCache\RequestPolicyInterface: '@page_cache_request_policy'
  384. page_cache_response_policy:
  385. class: Drupal\Core\PageCache\ChainResponsePolicy
  386. tags:
  387. - { name: service_collector, tag: page_cache_response_policy, call: addPolicy}
  388. lazy: true
  389. Drupal\Core\PageCache\ResponsePolicyInterface: '@page_cache_response_policy'
  390. page_cache_kill_switch:
  391. class: Drupal\Core\PageCache\ResponsePolicy\KillSwitch
  392. tags:
  393. - { name: page_cache_response_policy }
  394. - { name: dynamic_page_cache_response_policy }
  395. Drupal\Core\PageCache\ResponsePolicy\KillSwitch: '@page_cache_kill_switch'
  396. page_cache_no_cache_routes:
  397. class: Drupal\Core\PageCache\ResponsePolicy\DenyNoCacheRoutes
  398. arguments: ['@current_route_match']
  399. public: false
  400. tags:
  401. - { name: page_cache_response_policy }
  402. - { name: dynamic_page_cache_response_policy }
  403. page_cache_no_server_error:
  404. class: Drupal\Core\PageCache\ResponsePolicy\NoServerError
  405. public: false
  406. tags:
  407. - { name: page_cache_response_policy }
  408. - { name: dynamic_page_cache_response_policy }
  409. config.manager:
  410. class: Drupal\Core\Config\ConfigManager
  411. arguments: ['@entity_type.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher', '@entity.repository', '@extension.path.resolver']
  412. Drupal\Core\Config\ConfigManagerInterface: '@config.manager'
  413. config.factory:
  414. class: Drupal\Core\Config\ConfigFactory
  415. tags:
  416. - { name: service_collector, tag: 'config.factory.override', call: addOverride }
  417. arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
  418. Drupal\Core\Config\ConfigFactoryInterface: '@config.factory'
  419. Drupal\Core\Config\ConfigImporterFactory:
  420. autowire: true
  421. config.importer_subscriber:
  422. class: Drupal\Core\Config\Importer\FinalMissingContentSubscriber
  423. config.installer:
  424. class: Drupal\Core\Config\ConfigInstaller
  425. arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher', '%install_profile%', '@extension.path.resolver']
  426. Drupal\Core\Config\ConfigInstallerInterface: '@config.installer'
  427. config.storage:
  428. class: Drupal\Core\Config\CachedStorage
  429. arguments: ['@config.storage.active', '@cache.config']
  430. Drupal\Core\Config\StorageCacheInterface: '@config.storage'
  431. config.storage.active:
  432. class: Drupal\Core\Config\DatabaseStorage
  433. arguments: ['@database', 'config']
  434. public: false
  435. tags:
  436. - { name: backend_overridable }
  437. config.storage.checkpoint:
  438. class: Drupal\Core\Config\Checkpoint\CheckpointStorage
  439. arguments: [ '@config.storage', '@config.checkpoints', '@keyvalue' ]
  440. Drupal\Core\Config\Checkpoint\CheckpointStorageInterface: '@config.storage.checkpoint'
  441. config.checkpoints:
  442. class: Drupal\Core\Config\Checkpoint\LinearHistory
  443. arguments: [ '@state', '@datetime.time' ]
  444. Drupal\Core\Config\Checkpoint\CheckpointListInterface: '@config.checkpoints'
  445. config.import_transformer:
  446. class: Drupal\Core\Config\ImportStorageTransformer
  447. arguments: ['@event_dispatcher', '@database', '@lock', '@lock.persistent']
  448. Drupal\Core\Config\ImportStorageTransformer: '@config.import_transformer'
  449. config.storage.export:
  450. class: Drupal\Core\Config\ManagedStorage
  451. arguments: ['@config.storage.export.manager']
  452. config.storage.export.manager:
  453. class: Drupal\Core\Config\ExportStorageManager
  454. arguments: ['@config.storage', '@database', '@event_dispatcher', '@lock']
  455. public: false
  456. Drupal\Core\Config\StorageManagerInterface: '@config.storage.export.manager'
  457. config.storage.sync:
  458. class: Drupal\Core\Config\FileStorage
  459. factory: Drupal\Core\Config\FileStorageFactory::getSync
  460. config.storage.snapshot:
  461. class: Drupal\Core\Config\DatabaseStorage
  462. arguments: ['@database', config_snapshot]
  463. tags:
  464. - { name: backend_overridable }
  465. config.storage.schema:
  466. class: Drupal\Core\Config\ExtensionInstallStorage
  467. arguments: ['@config.storage', 'config/schema', '', true, '%install_profile%']
  468. config.typed:
  469. class: Drupal\Core\Config\TypedConfigManager
  470. arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery', '@module_handler', '@class_resolver']
  471. tags:
  472. - { name: plugin_manager_cache_clear }
  473. calls:
  474. - [setValidationConstraintManager, ['@validation.constraint']]
  475. Drupal\Core\Config\TypedConfigManagerInterface: '@config.typed'
  476. context.handler:
  477. class: Drupal\Core\Plugin\Context\ContextHandler
  478. Drupal\Core\Plugin\Context\ContextHandlerInterface: '@context.handler'
  479. context.repository:
  480. class: Drupal\Core\Plugin\Context\LazyContextRepository
  481. arguments: ['@service_container']
  482. tags:
  483. - { name: service_id_collector, tag: context_provider }
  484. Drupal\Core\Plugin\Context\ContextRepositoryInterface: '@context.repository'
  485. Drupal\Component\DependencyInjection\ReverseContainer:
  486. arguments: [ '@service_container' ]
  487. cron:
  488. class: Drupal\Core\Cron
  489. arguments: ['@module_handler', '@lock', '@queue', '@state', '@account_switcher', '@logger.channel.cron', '@plugin.manager.queue_worker', '@datetime.time', '%queue.config%']
  490. Drupal\Core\CronInterface: '@cron'
  491. diff.formatter:
  492. class: Drupal\Core\Diff\DiffFormatter
  493. arguments: ['@config.factory']
  494. Drupal\Core\Diff\DiffFormatter: '@diff.formatter'
  495. database:
  496. class: Drupal\Core\Database\Connection
  497. factory: Drupal\Core\Database\Database::getConnection
  498. arguments: [default]
  499. Drupal\Core\Database\Connection: '@database'
  500. database.replica:
  501. class: Drupal\Core\Database\Connection
  502. factory: Drupal\Core\Database\Database::getConnection
  503. arguments: [replica]
  504. database.replica_kill_switch:
  505. class: Drupal\Core\Database\ReplicaKillSwitch
  506. arguments: ['@settings', '@datetime.time', '@session']
  507. Drupal\Core\Database\ReplicaKillSwitch: '@database.replica_kill_switch'
  508. Drupal\Core\Database\EventSubscriber\StatementExecutionSubscriber: ~
  509. datetime.time:
  510. class: Drupal\Component\Datetime\Time
  511. arguments: ['@request_stack']
  512. Drupal\Component\Datetime\TimeInterface: '@datetime.time'
  513. file_system:
  514. class: Drupal\Core\File\FileSystem
  515. arguments: ['@stream_wrapper_manager', '@settings']
  516. Drupal\Core\File\FileSystemInterface: '@file_system'
  517. file_url_generator:
  518. class: Drupal\Core\File\FileUrlGenerator
  519. arguments: ['@stream_wrapper_manager', '@request_stack', '@module_handler']
  520. Drupal\Core\File\FileUrlGeneratorInterface: '@file_url_generator'
  521. form_builder:
  522. class: Drupal\Core\Form\FormBuilder
  523. arguments: ['@form_validator', '@form_submitter', '@form_cache', '@module_handler', '@event_dispatcher', '@request_stack', '@class_resolver', '@element_info', '@theme.manager', '@csrf_token', '@callable_resolver']
  524. Drupal\Core\Form\FormBuilderInterface: '@form_builder'
  525. form_validator:
  526. class: Drupal\Core\Form\FormValidator
  527. arguments: ['@request_stack', '@string_translation', '@csrf_token', '@logger.channel.form', '@form_error_handler', '@callable_resolver']
  528. Drupal\Core\Form\FormValidatorInterface: '@form_validator'
  529. form_submitter:
  530. class: Drupal\Core\Form\FormSubmitter
  531. arguments: ['@request_stack', '@url_generator', '@redirect_response_subscriber', '@callable_resolver']
  532. Drupal\Core\Form\FormSubmitterInterface: '@form_submitter'
  533. form_error_handler:
  534. class: Drupal\Core\Form\FormErrorHandler
  535. Drupal\Core\Form\FormErrorHandlerInterface: '@form_error_handler'
  536. form_cache:
  537. class: Drupal\Core\Form\FormCache
  538. arguments: ['%app.root%', '@keyvalue.expirable', '@module_handler', '@current_user', '@csrf_token', '@logger.channel.form', '@request_stack', '@page_cache_request_policy']
  539. public: false # Private to form_builder
  540. Drupal\Core\Form\FormCacheInterface: '@form_cache'
  541. Drupal\Core\Form\FormPreprocess:
  542. class: Drupal\Core\Form\FormPreprocess
  543. keyvalue:
  544. class: Drupal\Core\KeyValueStore\KeyValueFactory
  545. arguments: ['@service_container', '%factory.keyvalue%']
  546. Drupal\Core\KeyValueStore\KeyValueFactoryInterface: '@keyvalue'
  547. keyvalue.database:
  548. class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
  549. arguments: ['@serialization.phpserialize', '@database']
  550. keyvalue.expirable:
  551. class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
  552. arguments: ['@service_container', '%factory.keyvalue.expirable%']
  553. Drupal\Core\KeyValueStore\KeyValueExpirableFactoryInterface: '@keyvalue.expirable'
  554. keyvalue.expirable.database:
  555. class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
  556. arguments: ['@serialization.phpserialize', '@database', '@datetime.time']
  557. logger.factory:
  558. class: Drupal\Core\Logger\LoggerChannelFactory
  559. arguments: ['@request_stack', '@current_user']
  560. tags:
  561. - { name: service_collector, tag: logger, call: addLogger }
  562. Drupal\Core\Logger\LoggerChannelFactoryInterface: '@logger.factory'
  563. logger.channel_base:
  564. abstract: true
  565. class: Drupal\Core\Logger\LoggerChannel
  566. factory: ['@logger.factory', 'get']
  567. logger.channel.default:
  568. parent: logger.channel_base
  569. arguments: ['system']
  570. logger.channel.default_content:
  571. parent: logger.channel_base
  572. arguments: ['default_content']
  573. logger.channel.php:
  574. parent: logger.channel_base
  575. arguments: ['php']
  576. logger.channel.image:
  577. parent: logger.channel_base
  578. arguments: ['image']
  579. logger.channel.cron:
  580. parent: logger.channel_base
  581. arguments: ['cron']
  582. logger.channel.file:
  583. class: Drupal\Core\Logger\LoggerChannel
  584. factory: ['@logger.factory', 'get']
  585. arguments: ['file']
  586. logger.channel.form:
  587. parent: logger.channel_base
  588. arguments: ['form']
  589. logger.channel.security:
  590. parent: logger.channel_base
  591. arguments: ['security']
  592. logger.channel.mail:
  593. parent: logger.channel_base
  594. arguments: ['mail']
  595. logger.channel.menu:
  596. parent: logger.channel_base
  597. arguments: ['menu']
  598. logger.channel.router:
  599. parent: logger.channel_base
  600. arguments: ['router']
  601. logger.log_message_parser:
  602. class: Drupal\Core\Logger\LogMessageParser
  603. Drupal\Core\Logger\LogMessageParserInterface: '@logger.log_message_parser'
  604. serialization.json:
  605. class: Drupal\Component\Serialization\Json
  606. serialization.phpserialize:
  607. class: Drupal\Component\Serialization\PhpSerialize
  608. Drupal\Component\Serialization\ObjectAwareSerializationInterface: '@serialization.phpserialize'
  609. serialization.yaml:
  610. class: Drupal\Component\Serialization\Yaml
  611. settings:
  612. class: Drupal\Core\Site\Settings
  613. factory: Drupal\Core\Site\Settings::getInstance
  614. Drupal\Core\Site\Settings: '@settings'
  615. state:
  616. class: Drupal\Core\State\State
  617. arguments: ['@keyvalue', '@cache.bootstrap', '@lock']
  618. tags:
  619. - { name: needs_destruction }
  620. Drupal\Core\State\StateInterface: '@state'
  621. queue:
  622. class: Drupal\Core\Queue\QueueFactory
  623. autowire: true
  624. Drupal\Core\Queue\QueueFactory: '@queue'
  625. queue.database:
  626. class: Drupal\Core\Queue\QueueDatabaseFactory
  627. arguments: ['@database']
  628. Drupal\Core\Queue\QueueDatabaseFactory: '@queue.database'
  629. path.current:
  630. class: Drupal\Core\Path\CurrentPathStack
  631. arguments: ['@request_stack']
  632. Drupal\Core\Path\CurrentPathStack: '@path.current'
  633. http_handler_stack:
  634. class: GuzzleHttp\HandlerStack
  635. public: false
  636. factory: GuzzleHttp\HandlerStack::create
  637. configurator: ['@http_handler_stack_configurator', configure]
  638. GuzzleHttp\HandlerStack: '@http_handler_stack'
  639. http_handler_stack_configurator:
  640. class: Drupal\Core\Http\HandlerStackConfigurator
  641. public: false
  642. arguments: ['@service_container']
  643. tags:
  644. - { name: service_id_collector, tag: http_client_middleware }
  645. Drupal\Core\Http\HandlerStackConfigurator: '@http_handler_stack_configurator'
  646. http_client:
  647. class: GuzzleHttp\Client
  648. factory: ['@http_client_factory', 'fromOptions']
  649. GuzzleHttp\ClientInterface: '@http_client'
  650. Psr\Http\Client\ClientInterface: '@http_client'
  651. http_client_factory:
  652. class: Drupal\Core\Http\ClientFactory
  653. arguments: ['@http_handler_stack']
  654. Drupal\Core\Http\ClientFactory: '@http_client_factory'
  655. plugin.manager.link_relation_type:
  656. class: \Drupal\Core\Http\LinkRelationTypeManager
  657. arguments: ['%app.root%', '@module_handler', '@cache.discovery']
  658. theme.negotiator:
  659. class: Drupal\Core\Theme\ThemeNegotiator
  660. arguments: ['@access_check.theme', '@class_resolver']
  661. tags:
  662. - { name: service_id_collector, tag: theme_negotiator }
  663. Drupal\Core\Theme\ThemeNegotiatorInterface: '@theme.negotiator'
  664. theme.negotiator.default:
  665. class: Drupal\Core\Theme\DefaultNegotiator
  666. arguments: ['@config.factory']
  667. tags:
  668. - { name: theme_negotiator, priority: -100 }
  669. theme.negotiator.ajax_base_page:
  670. class: Drupal\Core\Theme\AjaxBasePageNegotiator
  671. arguments: ['@csrf_token', '@config.factory', '@request_stack']
  672. tags:
  673. - { name: theme_negotiator, priority: 1000 }
  674. container.namespaces:
  675. class: ArrayObject
  676. arguments: [ '%container.namespaces%' ]
  677. container.trait:
  678. abstract: true
  679. calls:
  680. - [setContainer, ['@service_container']]
  681. default_plugin_manager:
  682. abstract: true
  683. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  684. module_handler:
  685. class: Drupal\Core\Extension\ModuleHandler
  686. arguments: ['%app.root%', '%container.modules%', '@keyvalue', '@callable_resolver', '@cache.bootstrap']
  687. Drupal\Core\Extension\ModuleHandlerInterface: '@module_handler'
  688. module_installer:
  689. class: Drupal\Core\Extension\ModuleInstaller
  690. autowire: true
  691. Drupal\Core\Extension\ModuleInstallerInterface: '@module_installer'
  692. module_installer.uninstall_validators:
  693. class: \IteratorIterator
  694. arguments: [!tagged_iterator module_install.uninstall_validator]
  695. deprecated: The "%service_id%" service is deprecated in drupal:11.1.0 and is removed from drupal:12.0.0. Inject "!tagged_iterator module_install.uninstall_validator" instead. See https://www.drupal.org/node/3432595
  696. extension.list.module:
  697. class: Drupal\Core\Extension\ModuleExtensionList
  698. arguments: ['%app.root%', 'module', '@cache.default', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.profile', '%install_profile%', '%container.modules%']
  699. Drupal\Core\Extension\ModuleExtensionList: '@extension.list.module'
  700. extension.list.profile:
  701. class: Drupal\Core\Extension\ProfileExtensionList
  702. arguments: ['%app.root%', 'profile', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
  703. Drupal\Core\Extension\ProfileExtensionList: '@extension.list.profile'
  704. extension.list.theme:
  705. class: Drupal\Core\Extension\ThemeExtensionList
  706. arguments: ['%app.root%', 'theme', '@cache.bootstrap', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.theme_engine', '%install_profile%']
  707. Drupal\Core\Extension\ThemeExtensionList: '@extension.list.theme'
  708. extension.list.theme_engine:
  709. class: Drupal\Core\Extension\ThemeEngineExtensionList
  710. arguments: ['%app.root%', 'theme_engine', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
  711. Drupal\Core\Extension\ThemeEngineExtensionList: '@extension.list.theme_engine'
  712. extension.list.database_driver:
  713. class: Drupal\Core\Extension\DatabaseDriverList
  714. arguments: ['%app.root%', 'database_driver', '@cache.default']
  715. Drupal\Core\Extension\DatabaseDriverList: '@extension.list.database_driver'
  716. extension.path.resolver:
  717. class: Drupal\Core\Extension\ExtensionPathResolver
  718. arguments: ['@extension.list.module', '@extension.list.profile', '@extension.list.theme', '@extension.list.theme_engine']
  719. Drupal\Core\Extension\ExtensionPathResolver: '@extension.path.resolver'
  720. content_uninstall_validator:
  721. class: Drupal\Core\Entity\ContentUninstallValidator
  722. arguments: ['@entity_type.manager', '@string_translation']
  723. required_module_uninstall_validator:
  724. class: Drupal\Core\Extension\RequiredModuleUninstallValidator
  725. arguments: ['@string_translation', '@extension.list.module']
  726. module_required_by_themes_uninstall_validator:
  727. class: Drupal\Core\Extension\ModuleRequiredByThemesUninstallValidator
  728. arguments: ['@string_translation', '@extension.list.module', '@extension.list.theme']
  729. database_driver_uninstall_validator:
  730. class: Drupal\Core\Extension\DatabaseDriverUninstallValidator
  731. arguments: ['@string_translation', '@extension.list.module', '@database']
  732. install_profile_uninstall_validator:
  733. class: Drupal\Core\Extension\InstallProfileUninstallValidator
  734. arguments: ['@string_translation', '@extension.list.module', '@extension.list.theme', '%install_profile%', '%app.root%', '%site.path%']
  735. theme_handler:
  736. class: Drupal\Core\Extension\ThemeHandler
  737. arguments: ['%app.root%', '@config.factory', '@extension.list.theme']
  738. Drupal\Core\Extension\ThemeHandlerInterface: '@theme_handler'
  739. theme_installer:
  740. class: Drupal\Core\Extension\ThemeInstaller
  741. autowire: true
  742. Drupal\Core\Extension\ThemeInstallerInterface: '@theme_installer'
  743. entity.memory_cache:
  744. class: Drupal\Core\Cache\MemoryCache\LruMemoryCache
  745. arguments: ['@datetime.time', '%entity.memory_cache.slots%']
  746. Drupal\Core\Cache\MemoryCache\MemoryCacheInterface:
  747. alias: 'entity.memory_cache'
  748. deprecated: 'The "%alias_id%" service is deprecated in drupal:11.3.0 and is removed from drupal:13.0.0. Use #Autowire to pick a specific cache bin, such as cache.memory. See https://www.drupal.org/node/3546856'
  749. entity_type.manager:
  750. class: Drupal\Core\Entity\EntityTypeManager
  751. arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@string_translation', '@class_resolver', '@entity.last_installed_schema.repository', '@service_container']
  752. tags:
  753. - { name: plugin_manager_cache_clear }
  754. Drupal\Core\Entity\EntityTypeManagerInterface: '@entity_type.manager'
  755. entity_type.repository:
  756. class: Drupal\Core\Entity\EntityTypeRepository
  757. arguments: ['@entity_type.manager', '@entity_type.bundle.info']
  758. Drupal\Core\Entity\EntityTypeRepositoryInterface: '@entity_type.repository'
  759. entity_type.bundle.info:
  760. class: Drupal\Core\Entity\EntityTypeBundleInfo
  761. arguments: ['@entity_type.manager', '@language_manager', '@module_handler', '@typed_data_manager', '@cache.discovery']
  762. Drupal\Core\Entity\EntityTypeBundleInfoInterface: '@entity_type.bundle.info'
  763. entity.repository:
  764. class: Drupal\Core\Entity\EntityRepository
  765. arguments: ['@entity_type.manager', '@language_manager', '@context.repository']
  766. Drupal\Core\Entity\EntityRepositoryInterface: '@entity.repository'
  767. entity_display.repository:
  768. class: Drupal\Core\Entity\EntityDisplayRepository
  769. arguments: ['@entity_type.manager', '@module_handler', '@cache.discovery', '@language_manager']
  770. Drupal\Core\Entity\EntityDisplayRepositoryInterface: '@entity_display.repository'
  771. entity_field.manager:
  772. class: Drupal\Core\Entity\EntityFieldManager
  773. arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_display.repository', '@typed_data_manager', '@language_manager', '@keyvalue', '@module_handler', '@cache.discovery', '@entity.last_installed_schema.repository']
  774. Drupal\Core\Entity\EntityFieldManagerInterface: '@entity_field.manager'
  775. entity_type.listener:
  776. class: Drupal\Core\Entity\EntityTypeListener
  777. arguments: ['@entity_type.manager', '@entity_field.manager', '@event_dispatcher', '@entity.last_installed_schema.repository']
  778. Drupal\Core\Entity\EntityTypeListenerInterface: '@entity_type.listener'
  779. entity_bundle.listener:
  780. class: Drupal\Core\Entity\EntityBundleListener
  781. arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@module_handler']
  782. Drupal\Core\Entity\EntityBundleListenerInterface: '@entity_bundle.listener'
  783. entity_route_subscriber:
  784. class: Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
  785. arguments: ['@entity_type.manager']
  786. entity.definition_update_manager:
  787. class: Drupal\Core\Entity\EntityDefinitionUpdateManager
  788. arguments: ['@entity_type.manager', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_type.listener', '@field_storage_definition.listener']
  789. Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface: '@entity.definition_update_manager'
  790. entity.last_installed_schema.repository:
  791. class: Drupal\Core\Entity\EntityLastInstalledSchemaRepository
  792. arguments: ['@keyvalue', '@cache.discovery']
  793. Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface: '@entity.last_installed_schema.repository'
  794. entity_field.deleted_fields_repository:
  795. class: Drupal\Core\Field\DeletedFieldsRepository
  796. arguments: ['@state']
  797. Drupal\Core\Field\DeletedFieldsRepositoryInterface: '@entity_field.deleted_fields_repository'
  798. field_storage_definition.listener:
  799. class: Drupal\Core\Field\FieldStorageDefinitionListener
  800. arguments: ['@entity_type.manager', '@event_dispatcher', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_field.deleted_fields_repository']
  801. Drupal\Core\Field\FieldStorageDefinitionListenerInterface: '@field_storage_definition.listener'
  802. field_definition.listener:
  803. class: Drupal\Core\Field\FieldDefinitionListener
  804. arguments: ['@entity_type.manager', '@entity_field.manager', '@keyvalue', '@cache.discovery']
  805. Drupal\Core\Field\FieldDefinitionListenerInterface: '@field_definition.listener'
  806. Drupal\Core\Field\FieldPreprocess:
  807. class: Drupal\Core\Field\FieldPreprocess
  808. autowire: true
  809. entity.form_builder:
  810. class: Drupal\Core\Entity\EntityFormBuilder
  811. arguments: ['@entity_type.manager', '@form_builder']
  812. Drupal\Core\Entity\EntityFormBuilderInterface: '@entity.form_builder'
  813. entity.bundle_config_import_validator:
  814. class: Drupal\Core\Entity\Event\BundleConfigImportValidate
  815. arguments: ['@config.manager', '@entity_type.manager']
  816. entity.autocomplete_matcher:
  817. class: Drupal\Core\Entity\EntityAutocompleteMatcher
  818. arguments: ['@plugin.manager.entity_reference_selection']
  819. Drupal\Core\Entity\EntityAutocompleteMatcherInterface: '@entity.autocomplete_matcher'
  820. plugin_form.factory:
  821. class: Drupal\Core\Plugin\PluginFormFactory
  822. arguments: ['@class_resolver']
  823. Drupal\Core\Plugin\PluginFormFactoryInterface: '@plugin_form.factory'
  824. plugin.manager.entity_reference_selection:
  825. class: Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManager
  826. parent: default_plugin_manager
  827. Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface: '@plugin.manager.entity_reference_selection'
  828. plugin.manager.block:
  829. class: Drupal\Core\Block\BlockManager
  830. parent: default_plugin_manager
  831. arguments: ['@logger.channel.default']
  832. Drupal\Core\Block\BlockManagerInterface: '@plugin.manager.block'
  833. plugin.manager.field.field_type:
  834. class: Drupal\Core\Field\FieldTypePluginManager
  835. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@typed_data_manager', '@plugin.manager.field.field_type_category']
  836. Drupal\Core\Field\FieldTypePluginManagerInterface: '@plugin.manager.field.field_type'
  837. plugin.manager.field.field_type_category:
  838. class: \Drupal\Core\Field\FieldTypeCategoryManager
  839. arguments: [ '%app.root%', '@module_handler', '@cache.discovery' ]
  840. Drupal\Core\Field\FieldTypeCategoryManagerInterface: '@plugin.manager.field.field_type_category'
  841. plugin.manager.field.widget:
  842. class: Drupal\Core\Field\WidgetPluginManager
  843. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
  844. plugin.manager.field.formatter:
  845. class: Drupal\Core\Field\FormatterPluginManager
  846. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
  847. plugin.manager.archiver:
  848. class: Drupal\Core\Archiver\ArchiverManager
  849. parent: default_plugin_manager
  850. arguments: ['@file_system']
  851. deprecated: 'The "%service_id%" service is deprecated in drupal:11.3.0 and is removed from drupal:12.0.0. There is no replacement. See https://www.drupal.org/node/3556927'
  852. plugin.manager.action:
  853. class: Drupal\Core\Action\ActionManager
  854. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  855. plugin.manager.menu.link:
  856. class: Drupal\Core\Menu\MenuLinkManager
  857. arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
  858. Drupal\Core\Menu\MenuLinkManagerInterface: '@plugin.manager.menu.link'
  859. menu.link_tree:
  860. class: Drupal\Core\Menu\MenuLinkTree
  861. arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@callable_resolver']
  862. Drupal\Core\Menu\MenuLinkTreeInterface: '@menu.link_tree'
  863. menu.default_tree_manipulators:
  864. class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
  865. arguments: ['@access_manager', '@current_user', '@entity_type.manager', '@module_handler']
  866. Drupal\Core\Menu\DefaultMenuLinkTreeManipulators: '@menu.default_tree_manipulators'
  867. menu.active_trail:
  868. class: Drupal\Core\Menu\MenuActiveTrail
  869. arguments: ['@plugin.manager.menu.link', '@current_route_match', '@cache.menu', '@lock', '@path.matcher']
  870. tags:
  871. - { name: needs_destruction }
  872. lazy: true
  873. Drupal\Core\Menu\MenuActiveTrailInterface: '@menu.active_trail'
  874. menu.parent_form_selector:
  875. class: Drupal\Core\Menu\MenuParentFormSelector
  876. arguments: ['@menu.link_tree', '@entity_type.manager', '@string_translation']
  877. Drupal\Core\Menu\MenuParentFormSelectorInterface: '@menu.parent_form_selector'
  878. plugin.manager.menu.local_action:
  879. class: Drupal\Core\Menu\LocalActionManager
  880. arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
  881. Drupal\Core\Menu\LocalActionManagerInterface: '@plugin.manager.menu.local_action'
  882. plugin.manager.menu.local_task:
  883. class: Drupal\Core\Menu\LocalTaskManager
  884. arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
  885. Drupal\Core\Menu\LocalTaskManagerInterface: '@plugin.manager.menu.local_task'
  886. plugin.manager.menu.contextual_link:
  887. class: Drupal\Core\Menu\ContextualLinkManager
  888. arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
  889. Drupal\Core\Menu\ContextualLinkManagerInterface: '@plugin.manager.menu.contextual_link'
  890. Drupal\Core\Menu\MenuPreprocess:
  891. class: Drupal\Core\Menu\MenuPreprocess
  892. autowire: true
  893. plugin.manager.display_variant:
  894. class: Drupal\Core\Display\VariantManager
  895. parent: default_plugin_manager
  896. plugin.manager.queue_worker:
  897. class: Drupal\Core\Queue\QueueWorkerManager
  898. parent: default_plugin_manager
  899. Drupal\Core\Queue\QueueWorkerManagerInterface: '@plugin.manager.queue_worker'
  900. plugin.cache_clearer:
  901. class: Drupal\Core\Plugin\CachedDiscoveryClearer
  902. autowire: true
  903. Drupal\Core\Plugin\CachedDiscoveryClearerInterface: '@plugin.cache_clearer'
  904. paramconverter.menu_link:
  905. class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
  906. tags:
  907. - { name: paramconverter }
  908. arguments: ['@plugin.manager.menu.link']
  909. menu.tree_storage:
  910. class: Drupal\Core\Menu\MenuTreeStorage
  911. arguments: ['@database', '@cache.menu', '@cache_tags.invalidator', 'menu_tree']
  912. public: false # Private to plugin.manager.menu.link and menu.link_tree
  913. tags:
  914. - { name: backend_overridable }
  915. Drupal\Core\Menu\MenuTreeStorageInterface: '@menu.tree_storage'
  916. menu_link.static.overrides:
  917. class: Drupal\Core\Menu\StaticMenuLinkOverrides
  918. arguments: ['@config.factory']
  919. Drupal\Core\Menu\StaticMenuLinkOverridesInterface: '@menu_link.static.overrides'
  920. request_stack:
  921. class: Symfony\Component\HttpFoundation\RequestStack
  922. tags:
  923. - { name: persist }
  924. Symfony\Component\HttpFoundation\RequestStack: '@request_stack'
  925. current_route_match:
  926. class: Drupal\Core\Routing\CurrentRouteMatch
  927. arguments: ['@request_stack']
  928. Drupal\Core\Routing\RouteMatchInterface: '@current_route_match'
  929. event_dispatcher:
  930. class: Symfony\Component\EventDispatcher\EventDispatcher
  931. Psr\EventDispatcher\EventDispatcherInterface: '@event_dispatcher'
  932. Symfony\Contracts\EventDispatcher\EventDispatcherInterface: '@event_dispatcher'
  933. Symfony\Component\EventDispatcher\EventDispatcherInterface: '@event_dispatcher'
  934. controller_resolver:
  935. class: Drupal\Core\Controller\ControllerResolver
  936. arguments: ['@callable_resolver']
  937. Drupal\Core\Controller\ControllerResolverInterface: '@controller_resolver'
  938. Symfony\Component\HttpKernel\Controller\ControllerResolverInterface: '@controller_resolver'
  939. class_resolver:
  940. class: Drupal\Core\DependencyInjection\ClassResolver
  941. arguments: ['@service_container']
  942. Drupal\Core\DependencyInjection\ClassResolverInterface: '@class_resolver'
  943. callable_resolver:
  944. class: Drupal\Core\Utility\CallableResolver
  945. arguments: ['@class_resolver']
  946. Drupal\Core\Utility\CallableResolver: '@callable_resolver'
  947. title_resolver:
  948. class: Drupal\Core\Controller\TitleResolver
  949. arguments: ['@controller_resolver', '@string_translation', '@http_kernel.controller.argument_resolver']
  950. Drupal\Core\Controller\TitleResolverInterface: '@title_resolver'
  951. http_kernel:
  952. class: Drupal\Core\StackMiddleware\StackedHttpKernel
  953. Symfony\Component\HttpKernel\HttpKernelInterface: '@http_kernel'
  954. http_kernel.basic:
  955. class: Symfony\Component\HttpKernel\HttpKernel
  956. # A NULL value is passed to the request stack because Drupal populates the
  957. # request stack before HttpKernel::handle() calls push() and needs the
  958. # request stack to work after it calls pop(). This also prevents both
  959. # Drupal and Symfony pushing the same request to the request_stack service
  960. # twice and only popping the request once. The Symfony HTTP kernel creates
  961. # an internal request stack and pushes and pops request objects to that
  962. # instead of Drupal's request stack. Note that the request objects are the
  963. # same, so any changes to the request object will be reflected.
  964. #
  965. # Drupal pushes to the request stack in DrupalKernel::preHandle(), called
  966. # from KernelPreHandle::handle(). Drupal pops main requests in
  967. # DrupalKernel::terminate() and sub requests in KernelPreHandle::handle().
  968. arguments: ['@event_dispatcher', '@controller_resolver', null, '@http_kernel.controller.argument_resolver', true]
  969. http_kernel.controller.argument_resolver:
  970. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver
  971. arguments: ['@http_kernel.controller.argument_metadata_factory', ['@argument_resolver.request_attribute', '@argument_resolver.request', '@argument_resolver.psr7_request', '@argument_resolver.route_match', '@argument_resolver.query_parameter', '@argument_resolver.default']]
  972. Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface: '@http_kernel.controller.argument_resolver'
  973. http_kernel.controller.argument_metadata_factory:
  974. class: Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory
  975. public: false
  976. Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactoryInterface: '@http_kernel.controller.argument_metadata_factory'
  977. argument_resolver.request_attribute:
  978. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
  979. public: false
  980. argument_resolver.request:
  981. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
  982. public: false
  983. argument_resolver.psr7_request:
  984. class: Drupal\Core\Controller\ArgumentResolver\Psr7RequestValueResolver
  985. arguments: ['@psr7.http_message_factory']
  986. public: false
  987. argument_resolver.route_match:
  988. class: Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
  989. public: false
  990. argument_resolver.default:
  991. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
  992. public: false
  993. argument_resolver.query_parameter:
  994. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\QueryParameterValueResolver
  995. public: false
  996. http_middleware.content_length:
  997. class: Drupal\Core\StackMiddleware\ContentLength
  998. tags:
  999. # Must run before the page_cache and big_pipe middleware.
  1000. - { name: http_middleware, priority: 140 }
  1001. http_middleware.ajax_page_state:
  1002. class: Drupal\Core\StackMiddleware\AjaxPageState
  1003. tags:
  1004. - { name: http_middleware, priority: 500 }
  1005. http_middleware.negotiation:
  1006. class: Drupal\Core\StackMiddleware\NegotiationMiddleware
  1007. tags:
  1008. - { name: http_middleware, priority: 400 }
  1009. http_middleware.reverse_proxy:
  1010. class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
  1011. arguments: ['@settings']
  1012. tags:
  1013. - { name: http_middleware, priority: 300 }
  1014. http_middleware.kernel_pre_handle:
  1015. class: Drupal\Core\StackMiddleware\KernelPreHandle
  1016. arguments: ['@kernel', '@request_stack']
  1017. tags:
  1018. - { name: http_middleware, priority: 100 }
  1019. http_middleware.session:
  1020. class: Drupal\Core\StackMiddleware\Session
  1021. autowire: true
  1022. tags:
  1023. - { name: http_middleware, priority: 50 }
  1024. http_middleware.cors:
  1025. class: Asm89\Stack\Cors
  1026. arguments: ['%cors.config%']
  1027. tags:
  1028. - { name: http_middleware, priority: 250 }
  1029. psr7.http_foundation_factory:
  1030. class: Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory
  1031. Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface: '@psr7.http_foundation_factory'
  1032. psr17.server_request_factory:
  1033. class: GuzzleHttp\Psr7\HttpFactory
  1034. public: false
  1035. Psr\Http\Message\ServerRequestFactoryInterface: '@psr17.server_request_factory'
  1036. psr17.stream_factory:
  1037. class: GuzzleHttp\Psr7\HttpFactory
  1038. public: false
  1039. Psr\Http\Message\StreamFactoryInterface: '@psr17.stream_factory'
  1040. psr17.uploaded_file_factory:
  1041. class: GuzzleHttp\Psr7\HttpFactory
  1042. public: false
  1043. Psr\Http\Message\UploadedFileFactoryInterface: '@psr17.uploaded_file_factory'
  1044. psr17.response_factory:
  1045. class: GuzzleHttp\Psr7\HttpFactory
  1046. public: false
  1047. Psr\Http\Message\ResponseFactoryInterface: '@psr17.response_factory'
  1048. psr7.http_message_factory:
  1049. class: Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory
  1050. arguments: ['@psr17.server_request_factory', '@psr17.stream_factory', '@psr17.uploaded_file_factory', '@psr17.response_factory']
  1051. Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface: '@psr7.http_message_factory'
  1052. language_manager:
  1053. class: Drupal\Core\Language\LanguageManager
  1054. arguments: ['@language.default']
  1055. Drupal\Core\Language\LanguageManagerInterface: '@language_manager'
  1056. language.current_language_context:
  1057. class: Drupal\Core\Language\ContextProvider\CurrentLanguageContext
  1058. arguments: ['@language_manager']
  1059. tags:
  1060. - { name: 'context_provider' }
  1061. language.default:
  1062. class: Drupal\Core\Language\LanguageDefault
  1063. arguments: ['%language.default_values%']
  1064. Drupal\Core\Language\LanguageDefault: '@language.default'
  1065. string_translator.custom_strings:
  1066. class: Drupal\Core\StringTranslation\Translator\CustomStrings
  1067. arguments: ['@settings']
  1068. tags:
  1069. - { name: string_translator, priority: 30 }
  1070. string_translation:
  1071. class: Drupal\Core\StringTranslation\TranslationManager
  1072. arguments: ['@language.default']
  1073. tags:
  1074. - { name: service_collector, tag: string_translator, call: addTranslator }
  1075. Drupal\Core\StringTranslation\TranslationInterface: '@string_translation'
  1076. typed_data_manager:
  1077. class: Drupal\Core\TypedData\TypedDataManager
  1078. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@class_resolver']
  1079. calls:
  1080. - [setValidationConstraintManager, ['@validation.constraint']]
  1081. tags:
  1082. - { name: plugin_manager_cache_clear }
  1083. Drupal\Core\TypedData\TypedDataManagerInterface: '@typed_data_manager'
  1084. validation.constraint:
  1085. class: Drupal\Core\Validation\ConstraintManager
  1086. parent: default_plugin_manager
  1087. tags:
  1088. - { name: plugin_manager_cache_clear }
  1089. validation.basic_recursive_validator_factory:
  1090. class: Drupal\Core\Validation\BasicRecursiveValidatorFactory
  1091. arguments: ['@class_resolver']
  1092. Drupal\Core\Validation\BasicRecursiveValidatorFactory: '@validation.basic_recursive_validator_factory'
  1093. lock:
  1094. class: Drupal\Core\Lock\DatabaseLockBackend
  1095. arguments: ['@database']
  1096. tags:
  1097. - { name: backend_overridable }
  1098. lazy: true
  1099. lock.persistent:
  1100. class: Drupal\Core\Lock\PersistentDatabaseLockBackend
  1101. arguments: ['@database']
  1102. tags:
  1103. - { name: backend_overridable }
  1104. lazy: true
  1105. router.request_context:
  1106. class: Drupal\Core\Routing\RequestContext
  1107. tags:
  1108. - { name: persist }
  1109. calls:
  1110. - [fromRequestStack, ['@request_stack']]
  1111. Drupal\Core\Routing\RequestContext: '@router.request_context'
  1112. router.admin_context:
  1113. class: Drupal\Core\Routing\AdminContext
  1114. arguments: ['@current_route_match']
  1115. Drupal\Core\Routing\AdminContext: '@router.admin_context'
  1116. router.route_provider:
  1117. class: Drupal\Core\Routing\RouteProvider
  1118. arguments: ['@database', '@state', '@path.current', '@cache.data', '@path_processor_manager', '@cache_tags.invalidator', 'router', '@language_manager']
  1119. tags:
  1120. - { name: backend_overridable }
  1121. Drupal\Core\Routing\RouteProviderInterface: '@router.route_provider'
  1122. router.route_provider.lazy_builder:
  1123. class: Drupal\Core\Routing\RouteProviderLazyBuilder
  1124. arguments: ['@router.route_provider', '@router.builder']
  1125. router.route_preloader:
  1126. class: Drupal\Core\Routing\RoutePreloader
  1127. arguments: ['@router.route_provider', '@state']
  1128. url_generator.non_bubbling:
  1129. class: Drupal\Core\Routing\UrlGenerator
  1130. arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@request_stack', '%filter_protocols%']
  1131. public: false
  1132. calls:
  1133. - [setContext, ['@?router.request_context']]
  1134. url_generator:
  1135. class: Drupal\Core\Render\MetadataBubblingUrlGenerator
  1136. arguments: ['@url_generator.non_bubbling', '@renderer']
  1137. calls:
  1138. - [setContext, ['@?router.request_context']]
  1139. Drupal\Core\Routing\UrlGeneratorInterface: '@url_generator'
  1140. Symfony\Component\Routing\Generator\UrlGeneratorInterface: '@url_generator'
  1141. redirect.destination:
  1142. class: Drupal\Core\Routing\RedirectDestination
  1143. arguments: ['@request_stack', '@url_generator']
  1144. Drupal\Core\Routing\RedirectDestinationInterface: '@redirect.destination'
  1145. unrouted_url_assembler:
  1146. class: Drupal\Core\Utility\UnroutedUrlAssembler
  1147. arguments: ['@request_stack', '@path_processor_manager', '%filter_protocols%']
  1148. Drupal\Core\Utility\UnroutedUrlAssemblerInterface: '@unrouted_url_assembler'
  1149. link_generator:
  1150. class: Drupal\Core\Utility\LinkGenerator
  1151. arguments: ['@url_generator', '@module_handler', '@renderer']
  1152. Drupal\Core\Utility\LinkGeneratorInterface: '@link_generator'
  1153. router:
  1154. class: Drupal\Core\Routing\AccessAwareRouter
  1155. arguments: ['@router.no_access_checks', '@access_manager', '@current_user']
  1156. Drupal\Core\Routing\AccessAwareRouterInterface: '@router'
  1157. router.no_access_checks:
  1158. class: \Drupal\Core\Routing\Router
  1159. arguments: ['@router.route_provider', '@path.current']
  1160. tags:
  1161. - { name: service_collector, tag: route_enhancer, call: addRouteEnhancer }
  1162. - { name: service_collector, tag: route_filter, call: addRouteFilter }
  1163. calls:
  1164. - [setContext, ['@router.request_context']]
  1165. router.path_roots_subscriber:
  1166. class: Drupal\Core\EventSubscriber\PathRootsSubscriber
  1167. arguments: ['@state']
  1168. entity.query.config:
  1169. class: Drupal\Core\Config\Entity\Query\QueryFactory
  1170. arguments: ['@config.factory', '@keyvalue', '@config.manager']
  1171. entity.query.sql:
  1172. class: Drupal\Core\Entity\Query\Sql\QueryFactory
  1173. arguments: ['@database']
  1174. tags:
  1175. - { name: backend_overridable }
  1176. pgsql.entity.query.sql:
  1177. class: Drupal\Core\Entity\Query\Sql\pgsql\QueryFactory
  1178. arguments: ['@database']
  1179. deprecated: The "%service_id%" service is deprecated in drupal:11.2.0 and is removed from drupal:12.0.0. Install the pgsql module to replace this service. See https://www.drupal.org/node/3488580
  1180. entity.query.null:
  1181. class: Drupal\Core\Entity\Query\Null\QueryFactory
  1182. entity.query.keyvalue:
  1183. class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
  1184. arguments: ['@keyvalue']
  1185. router.dumper:
  1186. class: Drupal\Core\Routing\MatcherDumper
  1187. arguments: ['@database', '@state', '@logger.channel.router']
  1188. tags:
  1189. - { name: backend_overridable }
  1190. lazy: true
  1191. Drupal\Core\Routing\MatcherDumperInterface: '@router.dumper'
  1192. router.builder:
  1193. class: Drupal\Core\Routing\RouteBuilder
  1194. arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@access_manager.check_provider']
  1195. lazy: true
  1196. tags:
  1197. - { name: needs_destruction }
  1198. Drupal\Core\Routing\RouteBuilderInterface: '@router.builder'
  1199. menu.rebuild_subscriber:
  1200. class: Drupal\Core\EventSubscriber\MenuRouterRebuildSubscriber
  1201. arguments: ['@lock', '@plugin.manager.menu.link', '@database', '@database.replica_kill_switch', '@logger.channel.menu']
  1202. path.matcher:
  1203. class: Drupal\Core\Path\PathMatcher
  1204. arguments: ['@config.factory', '@current_route_match']
  1205. Drupal\Core\Path\PathMatcherInterface: '@path.matcher'
  1206. path.validator:
  1207. class: Drupal\Core\Path\PathValidator
  1208. arguments: ['@router', '@router.no_access_checks', '@current_user', '@path_processor_manager']
  1209. Drupal\Core\Path\PathValidatorInterface: '@path.validator'
  1210. password:
  1211. class: Drupal\Core\Password\PhpPassword
  1212. arguments: ['%password.algorithm%', '%password.options%']
  1213. Drupal\Core\Password\PasswordInterface: '@password'
  1214. password_generator:
  1215. class: Drupal\Core\Password\DefaultPasswordGenerator
  1216. Drupal\Core\Password\PasswordGeneratorInterface: '@password_generator'
  1217. request_format_route_filter:
  1218. class: Drupal\Core\Routing\RequestFormatRouteFilter
  1219. tags:
  1220. - { name: route_filter }
  1221. method_filter:
  1222. class: Drupal\Core\Routing\MethodFilter
  1223. tags:
  1224. # The HTTP method route filter must run very early: it removes any routes
  1225. # whose requirements do not allow the HTTP method of the current request.
  1226. # Throws a 405 if no routes match the current request's HTTP method.
  1227. # (If it runs before content_type_header_matcher, it can ensure that only
  1228. # receives routes which can have a Content-Type request header.)
  1229. - { name: route_filter, priority: 10 }
  1230. content_type_header_matcher:
  1231. class: Drupal\Core\Routing\ContentTypeHeaderMatcher
  1232. tags:
  1233. # The Content-Type request header route filter must run early: it removes
  1234. # any routes whose requirements do not allow the Content-Type request
  1235. # header of the current request.
  1236. # Throws a 415 if no routes match the Content-Type request header of the
  1237. # current request, or if it has no Content-Type request header.
  1238. # Note it does nothing for GET requests.
  1239. - { name: route_filter, priority: 5 }
  1240. paramconverter_manager:
  1241. class: Drupal\Core\ParamConverter\ParamConverterManager
  1242. autowire: true
  1243. Drupal\Core\ParamConverter\ParamConverterManagerInterface: '@paramconverter_manager'
  1244. paramconverter_subscriber:
  1245. class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
  1246. arguments: ['@paramconverter_manager']
  1247. paramconverter.entity:
  1248. class: Drupal\Core\ParamConverter\EntityConverter
  1249. tags:
  1250. - { name: paramconverter }
  1251. arguments: ['@entity_type.manager', '@entity.repository']
  1252. paramconverter.entity_revision:
  1253. class: Drupal\Core\ParamConverter\EntityRevisionParamConverter
  1254. tags:
  1255. - { name: paramconverter }
  1256. arguments: ['@entity_type.manager', '@entity.repository']
  1257. paramconverter.configentity_admin:
  1258. class: Drupal\Core\ParamConverter\AdminPathConfigEntityConverter
  1259. tags:
  1260. # Use a higher priority than EntityConverter, see the class for details.
  1261. - { name: paramconverter, priority: 5 }
  1262. arguments: ['@entity_type.manager', '@config.factory', '@router.admin_context', '@entity.repository']
  1263. route_subscriber.module:
  1264. class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
  1265. arguments: ['@module_handler']
  1266. resolver_manager.entity:
  1267. class: Drupal\Core\Entity\EntityResolverManager
  1268. arguments: ['@entity_type.manager', '@class_resolver']
  1269. Drupal\Core\Entity\EntityResolverManager: '@resolver_manager.entity'
  1270. route_subscriber.entity:
  1271. class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
  1272. arguments: ['@resolver_manager.entity']
  1273. ajax_response.subscriber:
  1274. class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
  1275. autowire: true
  1276. form_ajax_subscriber:
  1277. class: Drupal\Core\Form\EventSubscriber\FormAjaxSubscriber
  1278. arguments: ['@form_ajax_response_builder', '@string_translation', '@messenger']
  1279. route_enhancer.param_conversion:
  1280. class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
  1281. arguments: ['@paramconverter_manager']
  1282. tags:
  1283. - { name: route_enhancer, priority: 5000 }
  1284. route_enhancer.form:
  1285. class: Drupal\Core\Routing\Enhancer\FormRouteEnhancer
  1286. tags:
  1287. - { name: route_enhancer }
  1288. route_enhancer.entity:
  1289. class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
  1290. tags:
  1291. - { name: route_enhancer, priority: 20 }
  1292. route_enhancer.entity_bundle:
  1293. class: Drupal\Core\Entity\Enhancer\EntityBundleRouteEnhancer
  1294. arguments: ['@entity_type.manager']
  1295. tags:
  1296. - { name: route_enhancer }
  1297. route_enhancer.entity_revision:
  1298. class: Drupal\Core\Routing\Enhancer\EntityRevisionRouteEnhancer
  1299. tags:
  1300. - { name: route_enhancer }
  1301. route_special_attributes_subscriber:
  1302. class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
  1303. route_http_method_subscriber:
  1304. class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
  1305. psr_response_view_subscriber:
  1306. class: Drupal\Core\EventSubscriber\PsrResponseSubscriber
  1307. arguments: ['@psr7.http_foundation_factory']
  1308. # HTMX content view subscriber runs before main_content_view subscriber.
  1309. htmx_content_view_subscriber:
  1310. class: Drupal\Core\EventSubscriber\HtmxContentViewSubscriber
  1311. autowire: true
  1312. # Main content view subscriber plus the renderers it uses.
  1313. main_content_view_subscriber:
  1314. class: Drupal\Core\EventSubscriber\MainContentViewSubscriber
  1315. autowire: true
  1316. renderer_non_html:
  1317. class: Drupal\Core\EventSubscriber\RenderArrayNonHtmlSubscriber
  1318. main_content_renderer.html:
  1319. class: Drupal\Core\Render\MainContent\HtmlRenderer
  1320. arguments: ['@title_resolver', '@plugin.manager.display_variant', '@event_dispatcher', '@module_handler', '@renderer', '@render_cache', '%renderer.config%', '@theme.manager']
  1321. tags:
  1322. - { name: render.main_content_renderer, format: html }
  1323. main_content_renderer.htmx:
  1324. class: Drupal\Core\Render\MainContent\HtmxRenderer
  1325. arguments: ['@title_resolver', '@renderer', '@render_cache', '%renderer.config%']
  1326. tags:
  1327. - { name: render.main_content_renderer, format: drupal_htmx }
  1328. main_content_renderer.ajax:
  1329. class: Drupal\Core\Render\MainContent\AjaxRenderer
  1330. arguments: ['@element_info', '@renderer']
  1331. tags:
  1332. - { name: render.main_content_renderer, format: drupal_ajax }
  1333. - { name: render.main_content_renderer, format: iframeupload }
  1334. main_content_renderer.dialog:
  1335. class: Drupal\Core\Render\MainContent\DialogRenderer
  1336. arguments: ['@title_resolver', '@renderer']
  1337. tags:
  1338. - { name: render.main_content_renderer, format: drupal_dialog }
  1339. main_content_renderer.off_canvas:
  1340. class: Drupal\Core\Render\MainContent\OffCanvasRenderer
  1341. arguments: ['@title_resolver', '@renderer']
  1342. tags:
  1343. - { name: render.main_content_renderer, format: drupal_dialog.off_canvas }
  1344. main_content_renderer.off_canvas_top:
  1345. class: Drupal\Core\Render\MainContent\OffCanvasRenderer
  1346. arguments: ['@title_resolver', '@renderer', 'top']
  1347. tags:
  1348. - { name: render.main_content_renderer, format: drupal_dialog.off_canvas_top }
  1349. main_content_renderer.modal:
  1350. class: Drupal\Core\Render\MainContent\ModalRenderer
  1351. arguments: ['@title_resolver', '@renderer']
  1352. tags:
  1353. - { name: render.main_content_renderer, format: drupal_modal }
  1354. controller.form:
  1355. class: Drupal\Core\Controller\HtmlFormController
  1356. arguments: ['@http_kernel.controller.argument_resolver', '@form_builder', '@class_resolver']
  1357. Drupal\Core\Controller\HtmlFormController: '@controller.form'
  1358. controller.entity_form:
  1359. class: Drupal\Core\Entity\HtmlEntityFormController
  1360. arguments: ['@http_kernel.controller.argument_resolver', '@form_builder', '@entity_type.manager']
  1361. Drupal\Core\Entity\HtmlEntityFormController: '@controller.entity_form'
  1362. form_ajax_response_builder:
  1363. class: Drupal\Core\Form\FormAjaxResponseBuilder
  1364. arguments: ['@main_content_renderer.ajax', '@current_route_match', '@callable_resolver']
  1365. Drupal\Core\Form\FormAjaxResponseBuilderInterface: '@form_ajax_response_builder'
  1366. router_listener:
  1367. class: Symfony\Component\HttpKernel\EventListener\RouterListener
  1368. arguments: ['@router', '@request_stack', '@router.request_context', NULL]
  1369. options_request_listener:
  1370. class: Drupal\Core\EventSubscriber\OptionsRequestSubscriber
  1371. arguments: ['@router.route_provider']
  1372. bare_html_page_renderer:
  1373. class: Drupal\Core\Render\BareHtmlPageRenderer
  1374. arguments: ['@renderer', '@html_response.attachments_processor', '@Drupal\Core\Extension\ThemeSettingsProvider']
  1375. lazy: true
  1376. Drupal\Core\Render\BareHtmlPageRendererInterface: '@bare_html_page_renderer'
  1377. private_key:
  1378. class: Drupal\Core\PrivateKey
  1379. arguments: ['@state']
  1380. Drupal\Core\PrivateKey: '@private_key'
  1381. csrf_token:
  1382. class: Drupal\Core\Access\CsrfTokenGenerator
  1383. arguments: ['@private_key', '@session_manager.metadata_bag']
  1384. Drupal\Core\Access\CsrfTokenGenerator: '@csrf_token'
  1385. access_arguments_resolver_factory:
  1386. class: Drupal\Core\Access\AccessArgumentsResolverFactory
  1387. Drupal\Core\Access\AccessArgumentsResolverFactoryInterface: '@access_arguments_resolver_factory'
  1388. access_manager:
  1389. class: Drupal\Core\Access\AccessManager
  1390. arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user', '@access_manager.check_provider']
  1391. Drupal\Core\Access\AccessManagerInterface: '@access_manager'
  1392. access_manager.check_provider:
  1393. class: Drupal\Core\Access\CheckProvider
  1394. arguments: ['%dynamic_access_check_services%']
  1395. public: false
  1396. Drupal\Core\Access\CheckProviderInterface: '@access_manager.check_provider'
  1397. access_check.default:
  1398. class: Drupal\Core\Access\DefaultAccessCheck
  1399. tags:
  1400. - { name: access_check, applies_to: _access }
  1401. access_check.entity:
  1402. class: Drupal\Core\Entity\EntityAccessCheck
  1403. tags:
  1404. - { name: access_check, applies_to: _entity_access }
  1405. access_check.entity_create:
  1406. class: Drupal\Core\Entity\EntityCreateAccessCheck
  1407. arguments: ['@entity_type.manager']
  1408. tags:
  1409. - { name: access_check, applies_to: _entity_create_access }
  1410. access_check.entity_create_any:
  1411. class: Drupal\Core\Entity\EntityCreateAnyAccessCheck
  1412. arguments: ['@entity_type.manager', '@entity_type.bundle.info']
  1413. tags:
  1414. - { name: access_check, applies_to: _entity_create_any_access }
  1415. access_check.entity_delete_multiple:
  1416. class: Drupal\Core\Entity\EntityDeleteMultipleAccessCheck
  1417. arguments: ['@entity_type.manager', '@tempstore.private', '@request_stack']
  1418. tags:
  1419. - { name: access_check, applies_to: _entity_delete_multiple_access }
  1420. access_check.theme:
  1421. class: Drupal\Core\Theme\ThemeAccessCheck
  1422. arguments: ['@theme_handler']
  1423. tags:
  1424. - { name: access_check, applies_to: _access_theme }
  1425. access_check.custom:
  1426. class: Drupal\Core\Access\CustomAccessCheck
  1427. arguments: ['@callable_resolver', '@access_arguments_resolver_factory']
  1428. tags:
  1429. - { name: access_check, applies_to: _custom_access }
  1430. access_check.csrf:
  1431. class: Drupal\Core\Access\CsrfAccessCheck
  1432. tags:
  1433. - { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
  1434. arguments: ['@csrf_token']
  1435. access_check.header.csrf:
  1436. class: Drupal\Core\Access\CsrfRequestHeaderAccessCheck
  1437. arguments: ['@session_configuration', '@csrf_token']
  1438. tags:
  1439. - { name: access_check, needs_incoming_request: TRUE }
  1440. maintenance_mode:
  1441. class: Drupal\Core\Site\MaintenanceMode
  1442. arguments: ['@state', '@config.factory']
  1443. Drupal\Core\Site\MaintenanceModeInterface: '@maintenance_mode'
  1444. maintenance_mode_subscriber:
  1445. class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
  1446. autowire: true
  1447. route_access_response_subscriber:
  1448. class: Drupal\Core\EventSubscriber\RouteAccessResponseSubscriber
  1449. client_error_response_subscriber:
  1450. class: Drupal\Core\EventSubscriber\ClientErrorResponseSubscriber
  1451. anonymous_user_response_subscriber:
  1452. class: Drupal\Core\EventSubscriber\AnonymousUserResponseSubscriber
  1453. arguments: ['@current_user']
  1454. ajax_response.attachments_processor:
  1455. class: Drupal\Core\Ajax\AjaxResponseAttachmentsProcessor
  1456. arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler', '@language_manager']
  1457. html_response.attachments_processor:
  1458. class: Drupal\Core\Render\HtmlResponseAttachmentsProcessor
  1459. arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler', '@language_manager']
  1460. html_response.subscriber:
  1461. class: Drupal\Core\EventSubscriber\HtmlResponseSubscriber
  1462. arguments: ['@html_response.attachments_processor']
  1463. finish_response_subscriber:
  1464. class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
  1465. arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy', '@cache_contexts_manager', '@datetime.time', '%http.response.debug_cacheability_headers%']
  1466. response_generator_subscriber:
  1467. class: Drupal\Core\EventSubscriber\ResponseGeneratorSubscriber
  1468. redirect_response_subscriber:
  1469. class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
  1470. autowire: true
  1471. redirect_leading_slashes_subscriber:
  1472. class: Drupal\Core\EventSubscriber\RedirectLeadingSlashesSubscriber
  1473. config_import_subscriber:
  1474. class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
  1475. autowire: true
  1476. config_snapshot_subscriber:
  1477. class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
  1478. arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
  1479. config_exclude_modules_subscriber:
  1480. class: Drupal\Core\EventSubscriber\ExcludedModulesEventSubscriber
  1481. arguments: ['@config.storage', '@settings', '@config.manager']
  1482. exception.needs_installer:
  1483. class: Drupal\Core\EventSubscriber\ExceptionDetectNeedsInstallSubscriber
  1484. arguments: ['@database']
  1485. exception.default_json:
  1486. class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
  1487. exception.default_html:
  1488. class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
  1489. arguments: ['@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks']
  1490. exception.final:
  1491. class: Drupal\Core\EventSubscriber\FinalExceptionSubscriber
  1492. arguments: ['@config.factory']
  1493. exception.logger:
  1494. class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
  1495. arguments: ['@logger.factory']
  1496. exception.custom_page_html:
  1497. class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
  1498. arguments: ['@config.factory', '@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks', '@access_manager']
  1499. exception.fast_404_html:
  1500. class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
  1501. arguments: ['@config.factory', '@cache_tags.invalidator']
  1502. exception.enforced_form_response:
  1503. class: Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber
  1504. route_processor_manager:
  1505. class: Drupal\Core\RouteProcessor\RouteProcessorManager
  1506. tags:
  1507. - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
  1508. Drupal\Core\RouteProcessor\OutboundRouteProcessorInterface: '@route_processor_manager'
  1509. path_processor_manager:
  1510. class: Drupal\Core\PathProcessor\PathProcessorManager
  1511. tags:
  1512. - { name: service_collector, tag: path_processor_inbound, call: addInbound }
  1513. - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
  1514. Drupal\Core\PathProcessor\InboundPathProcessorInterface: '@path_processor_manager'
  1515. Drupal\Core\PathProcessor\OutboundPathProcessorInterface: '@path_processor_manager'
  1516. path_processor_decode:
  1517. class: Drupal\Core\PathProcessor\PathProcessorDecode
  1518. tags:
  1519. - { name: path_processor_inbound, priority: 1000 }
  1520. path_processor_front:
  1521. class: Drupal\Core\PathProcessor\PathProcessorFront
  1522. tags:
  1523. - { name: path_processor_inbound, priority: 200 }
  1524. arguments: ['@config.factory']
  1525. route_processor_current:
  1526. class: Drupal\Core\RouteProcessor\RouteProcessorCurrent
  1527. arguments: ['@current_route_match']
  1528. tags:
  1529. - { name: route_processor_outbound, priority: 200 }
  1530. route_processor_csrf:
  1531. class: Drupal\Core\Access\RouteProcessorCsrf
  1532. tags:
  1533. - { name: route_processor_outbound }
  1534. arguments: ['@csrf_token', '@request_stack']
  1535. transliteration:
  1536. class: Drupal\Core\Transliteration\PhpTransliteration
  1537. arguments: [null, '@module_handler']
  1538. flood:
  1539. class: Drupal\Core\Flood\DatabaseBackend
  1540. arguments: ['@database', '@request_stack', '@datetime.time']
  1541. tags:
  1542. - { name: backend_overridable }
  1543. Drupal\Core\Flood\FloodInterface: '@flood'
  1544. plugin.manager.mail:
  1545. class: Drupal\Core\Mail\MailManager
  1546. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation', '@renderer']
  1547. Drupal\Core\Mail\MailManagerInterface: '@plugin.manager.mail'
  1548. plugin.manager.condition:
  1549. class: Drupal\Core\Condition\ConditionManager
  1550. parent: default_plugin_manager
  1551. Drupal\Core\Executable\ExecutableManagerInterface: '@plugin.manager.condition'
  1552. plugin.manager.element_info:
  1553. class: Drupal\Core\Render\ElementInfoManager
  1554. arguments: ['@container.namespaces', '@cache.discovery', '@theme_handler', '@module_handler', '@theme.manager']
  1555. Drupal\Core\Render\ElementInfoManagerInterface: '@plugin.manager.element_info'
  1556. stream_wrapper_manager:
  1557. class: Drupal\Core\StreamWrapper\StreamWrapperManager
  1558. autowire: true
  1559. Drupal\Core\StreamWrapper\StreamWrapperManagerInterface: '@stream_wrapper_manager'
  1560. stream_wrapper.assets:
  1561. class: Drupal\Core\StreamWrapper\AssetsStream
  1562. tags:
  1563. - { name: stream_wrapper, scheme: assets }
  1564. Drupal\Core\StreamWrapper\AssetsStream: '@stream_wrapper.assets'
  1565. stream_wrapper.public:
  1566. class: Drupal\Core\StreamWrapper\PublicStream
  1567. tags:
  1568. - { name: stream_wrapper, scheme: public }
  1569. stream_wrapper.temporary:
  1570. class: Drupal\Core\StreamWrapper\TemporaryStream
  1571. tags:
  1572. - { name: stream_wrapper, scheme: temporary }
  1573. stream_wrapper.module:
  1574. class: Drupal\Core\StreamWrapper\ModuleStream
  1575. tags:
  1576. - { name: stream_wrapper, scheme: module }
  1577. stream_wrapper.theme:
  1578. class: Drupal\Core\StreamWrapper\ThemeStream
  1579. tags:
  1580. - { name: stream_wrapper, scheme: theme }
  1581. image.toolkit.manager:
  1582. class: Drupal\Core\ImageToolkit\ImageToolkitManager
  1583. autowire: true
  1584. parent: default_plugin_manager
  1585. tags:
  1586. - { name: plugin_manager_cache_clear }
  1587. Drupal\Core\ImageToolkit\ImageToolkitManager: '@image.toolkit.manager'
  1588. image.toolkit.operation.manager:
  1589. class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
  1590. autowire: true
  1591. parent: default_plugin_manager
  1592. tags:
  1593. - { name: plugin_manager_cache_clear }
  1594. Drupal\Core\ImageToolkit\ImageToolkitOperationManagerInterface: '@image.toolkit.operation.manager'
  1595. image.factory:
  1596. class: Drupal\Core\Image\ImageFactory
  1597. arguments: ['@image.toolkit.manager']
  1598. Drupal\Core\Image\ImageFactory: '@image.factory'
  1599. breadcrumb:
  1600. class: Drupal\Core\Breadcrumb\BreadcrumbManager
  1601. arguments: ['@module_handler']
  1602. tags:
  1603. - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
  1604. Drupal\Core\Breadcrumb\ChainBreadcrumbBuilderInterface: '@breadcrumb'
  1605. Drupal\Core\Breadcrumb\BreadcrumbPreprocess:
  1606. class: Drupal\Core\Breadcrumb\BreadcrumbPreprocess
  1607. autowire: true
  1608. token:
  1609. class: Drupal\Core\Utility\Token
  1610. arguments: ['@module_handler', '@cache.default', '@language_manager', '@cache_tags.invalidator', '@renderer']
  1611. Drupal\Core\Utility\Token: '@token'
  1612. batch.storage:
  1613. class: Drupal\Core\Batch\BatchStorage
  1614. arguments: ['@database', '@session', '@csrf_token', '@datetime.time']
  1615. tags:
  1616. - { name: backend_overridable }
  1617. lazy: true
  1618. Drupal\Core\Batch\BatchStorageInterface: '@batch.storage'
  1619. country_manager:
  1620. class: Drupal\Core\Locale\CountryManager
  1621. arguments: ['@module_handler']
  1622. Drupal\Core\Locale\CountryManagerInterface: '@country_manager'
  1623. date.formatter:
  1624. class: Drupal\Core\Datetime\DateFormatter
  1625. arguments: ['@entity_type.manager', '@language_manager', '@string_translation', '@config.factory', '@request_stack']
  1626. Drupal\Core\Datetime\DateFormatterInterface: '@date.formatter'
  1627. theme.manager:
  1628. class: Drupal\Core\Theme\ThemeManager
  1629. autowire: true
  1630. calls:
  1631. - [setThemeRegistry, ['@theme.registry']]
  1632. Drupal\Core\Theme\ThemeManagerInterface: '@theme.manager'
  1633. Drupal\Core\Template\TwigThemeEngine:
  1634. autowire: true
  1635. tags:
  1636. - { name: theme_engine, engine_name: twig }
  1637. theme.initialization:
  1638. class: Drupal\Core\Theme\ThemeInitialization
  1639. autowire: true
  1640. Drupal\Core\Theme\ThemeInitializationInterface: '@theme.initialization'
  1641. theme.registry:
  1642. class: Drupal\Core\Theme\Registry
  1643. arguments: ['%app.root%', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization', '@cache.bootstrap', '@extension.list.module', '@kernel', ~, '@keyvalue']
  1644. tags:
  1645. - { name: needs_destruction }
  1646. calls:
  1647. - [setThemeManager, ['@theme.manager']]
  1648. Drupal\Core\Theme\Registry: '@theme.registry'
  1649. Drupal\Core\Theme\ThemePreprocess:
  1650. class: Drupal\Core\Theme\ThemePreprocess
  1651. autowire: true
  1652. Drupal\Core\Theme\ImagePreprocess:
  1653. class: Drupal\Core\Theme\ImagePreprocess
  1654. autowire: true
  1655. Drupal\Core\Datetime\DatePreprocess:
  1656. class: Drupal\Core\Datetime\DatePreprocess
  1657. autowire: true
  1658. authentication:
  1659. class: Drupal\Core\Authentication\AuthenticationManager
  1660. arguments: ['@authentication_collector']
  1661. Drupal\Core\Authentication\AuthenticationProviderInterface: '@authentication'
  1662. authentication_collector:
  1663. class: Drupal\Core\Authentication\AuthenticationCollector
  1664. tags:
  1665. - { name: service_collector, tag: authentication_provider, call: addProvider }
  1666. Drupal\Core\Authentication\AuthenticationCollectorInterface: '@authentication_collector'
  1667. authentication_subscriber:
  1668. class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
  1669. arguments: ['@authentication', '@current_user']
  1670. account_switcher:
  1671. class: Drupal\Core\Session\AccountSwitcher
  1672. arguments: ['@current_user', '@session_handler.write_safe']
  1673. Drupal\Core\Session\AccountSwitcherInterface: '@account_switcher'
  1674. access_policy_processor:
  1675. class: Drupal\Core\Session\AccessPolicyProcessor
  1676. arguments: ['@variation_cache.access_policy', '@variation_cache.access_policy_memory', '@cache.access_policy_memory', '@current_user', '@account_switcher']
  1677. tags:
  1678. - { name: service_collector, call: addAccessPolicy, tag: access_policy }
  1679. Drupal\Core\Session\AccessPolicyProcessorInterface: '@access_policy_processor'
  1680. access_policy.super_user:
  1681. class: Drupal\Core\Session\SuperUserAccessPolicy
  1682. tags:
  1683. - { name: access_policy }
  1684. Drupal\Core\Session\SuperUserAccessPolicy: '@access_policy.super_user'
  1685. access_policy.user_roles:
  1686. class: Drupal\Core\Session\UserRolesAccessPolicy
  1687. arguments: ['@entity_type.manager']
  1688. tags:
  1689. - { name: access_policy }
  1690. Drupal\Core\Session\UserRolesAccessPolicy: '@access_policy.user_roles'
  1691. permission_checker:
  1692. class: Drupal\Core\Session\PermissionChecker
  1693. arguments: ['@access_policy_processor']
  1694. Drupal\Core\Session\PermissionCheckerInterface: '@permission_checker'
  1695. user_permissions_hash_generator:
  1696. class: Drupal\Core\Session\PermissionsHashGenerator
  1697. arguments: ['@private_key', '@cache.memory', '@access_policy_processor']
  1698. Drupal\Core\Session\PermissionsHashGeneratorInterface: '@user_permissions_hash_generator'
  1699. current_user:
  1700. class: Drupal\Core\Session\AccountProxy
  1701. arguments: ['@event_dispatcher']
  1702. Drupal\Core\Session\AccountInterface: '@current_user'
  1703. Drupal\Core\Session\AccountProxyInterface: '@current_user'
  1704. session_configuration:
  1705. class: Drupal\Core\Session\SessionConfiguration
  1706. arguments: ['%session.storage.options%']
  1707. Drupal\Core\Session\SessionConfigurationInterface: '@session_configuration'
  1708. session:
  1709. class: Symfony\Component\HttpFoundation\Session\Session
  1710. arguments: ['@session_manager', '@session.attribute_bag', '@session.flash_bag']
  1711. tags:
  1712. - { name: service_collector, tag: session_bag, call: registerBag }
  1713. Symfony\Component\HttpFoundation\Session\SessionInterface: '@session'
  1714. # session.flash_bag has special treatment: it is passed to the session
  1715. # service as an argument. Other services using FlashBag should be tagged
  1716. # with the session_bag tag, so that they will persist across page loads.
  1717. session.flash_bag:
  1718. class: Symfony\Component\HttpFoundation\Session\Flash\FlashBag
  1719. public: false
  1720. Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface: '@session.flash_bag'
  1721. session.attribute_bag:
  1722. class: Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag
  1723. public: false
  1724. Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface: '@session.attribute_bag'
  1725. Drupal\Core\Session\UserSessionRepositoryInterface:
  1726. class: Drupal\Core\Session\UserSessionRepository
  1727. autowire: true
  1728. tags:
  1729. - { name: backend_overridable }
  1730. session_handler:
  1731. alias: session_handler.storage
  1732. session_handler.storage:
  1733. class: Drupal\Core\Session\SessionHandler
  1734. arguments: ['@request_stack', '@database', '@datetime.time']
  1735. tags:
  1736. - { name: backend_overridable }
  1737. session_handler.write_safe:
  1738. class: Drupal\Core\Session\WriteSafeSessionHandler
  1739. tags:
  1740. - { name: session_handler_proxy, priority: 150 }
  1741. Drupal\Core\Session\WriteSafeSessionHandlerInterface: '@session_handler.write_safe'
  1742. session_manager:
  1743. class: Drupal\Core\Session\SessionManager
  1744. arguments: ['@request_stack', '@session_handler', '@session_manager.metadata_bag', '@session_configuration', '@datetime.time', '@Drupal\Core\Session\UserSessionRepositoryInterface']
  1745. Drupal\Core\Session\SessionManagerInterface: '@session_manager'
  1746. session_manager.metadata_bag:
  1747. class: Drupal\Core\Session\MetadataBag
  1748. arguments: ['@settings']
  1749. Drupal\Core\Session\MetadataBag: '@session_manager.metadata_bag'
  1750. asset.css.collection_renderer:
  1751. class: Drupal\Core\Asset\CssCollectionRenderer
  1752. arguments: [ '@asset.query_string', '@file_url_generator' ]
  1753. asset.css.collection_optimizer:
  1754. class: Drupal\Core\Asset\CssCollectionOptimizerLazy
  1755. arguments: [ '@asset.css.collection_grouper', '@asset.css.optimizer', '@theme.manager', '@library.dependency_resolver', '@request_stack', '@file_system', '@config.factory', '@file_url_generator', '@datetime.time', '@language_manager']
  1756. asset.css.optimizer:
  1757. class: Drupal\Core\Asset\CssOptimizer
  1758. arguments: ['@file_url_generator']
  1759. asset.css.collection_grouper:
  1760. class: Drupal\Core\Asset\CssCollectionGrouper
  1761. asset.css.dumper:
  1762. class: Drupal\Core\Asset\AssetDumper
  1763. arguments: ['@file_system']
  1764. asset.js.collection_renderer:
  1765. class: Drupal\Core\Asset\JsCollectionRenderer
  1766. arguments: [ '@asset.query_string','@file_url_generator', '@datetime.time' ]
  1767. asset.js.collection_optimizer:
  1768. class: Drupal\Core\Asset\JsCollectionOptimizerLazy
  1769. arguments: [ '@asset.js.collection_grouper', '@asset.js.optimizer', '@theme.manager', '@library.dependency_resolver', '@request_stack', '@file_system', '@config.factory', '@file_url_generator', '@datetime.time', '@language_manager']
  1770. asset.js.optimizer:
  1771. class: Drupal\Core\Asset\JsOptimizer
  1772. arguments: ['@logger.channel.default']
  1773. asset.js.collection_grouper:
  1774. class: Drupal\Core\Asset\JsCollectionGrouper
  1775. asset.js.dumper:
  1776. class: Drupal\Core\Asset\AssetDumper
  1777. arguments: ['@file_system']
  1778. library.discovery:
  1779. class: Drupal\Core\Asset\LibraryDiscoveryCollector
  1780. arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
  1781. tags:
  1782. - { name: needs_destruction }
  1783. Drupal\Core\Asset\LibraryDiscoveryInterface: '@library.discovery'
  1784. library.discovery.collector:
  1785. arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
  1786. class: Drupal\Core\Asset\LibraryDiscoveryCollector
  1787. deprecated: The "%service_id%" service is deprecated in drupal:11.1.0 and is removed from drupal:12.0.0. Use LibraryDiscovery instead. See https://www.drupal.org/node/3462970
  1788. library.discovery.parser:
  1789. class: Drupal\Core\Asset\LibraryDiscoveryParser
  1790. arguments: ['%app.root%', '@module_handler', '@theme.manager', '@stream_wrapper_manager', '@library.libraries_directory_file_finder', '@extension.path.resolver', '@plugin.manager.sdc']
  1791. Drupal\Core\Asset\LibraryDiscoveryParser: '@library.discovery.parser'
  1792. library.libraries_directory_file_finder:
  1793. class: Drupal\Core\Asset\LibrariesDirectoryFileFinder
  1794. arguments: ['%app.root%', '%site.path%', '@extension.list.profile', '%install_profile%']
  1795. Drupal\Core\Asset\LibrariesDirectoryFileFinder: '@library.libraries_directory_file_finder'
  1796. library.dependency_resolver:
  1797. class: Drupal\Core\Asset\LibraryDependencyResolver
  1798. arguments: ['@library.discovery']
  1799. Drupal\Core\Asset\LibraryDependencyResolverInterface: '@library.dependency_resolver'
  1800. # Set up a cache chain for asset caching as the same assets may be
  1801. # requested several times, non-public as they are not meant to be reused.
  1802. cache.asset_chain:
  1803. class: Drupal\Core\Cache\BackendChain
  1804. public: false
  1805. calls:
  1806. - [ appendBackend, [ '@cache.memory' ] ]
  1807. - [ appendBackend, [ '@cache.data' ] ]
  1808. asset.resolver:
  1809. class: Drupal\Core\Asset\AssetResolver
  1810. arguments: ['@library.discovery', '@library.dependency_resolver', '@module_handler', '@theme.manager', '@language_manager', '@cache.asset_chain', '@theme_handler']
  1811. Drupal\Core\Asset\AssetResolverInterface: '@asset.resolver'
  1812. info_parser:
  1813. class: Drupal\Core\Extension\InfoParser
  1814. arguments: ['%app.root%']
  1815. Drupal\Core\Extension\InfoParserInterface: '@info_parser'
  1816. twig:
  1817. class: Drupal\Core\Template\TwigEnvironment
  1818. arguments: ['%app.root%', '@cache.default', '%twig_extension_hash%', '@state', '@twig.loader', '%twig.config%']
  1819. tags:
  1820. - { name: service_collector, tag: 'twig.extension', call: addExtension }
  1821. Drupal\Core\Template\TwigEnvironment: '@twig'
  1822. twig.extension:
  1823. class: Drupal\Core\Template\TwigExtension
  1824. arguments: ['@renderer', '@url_generator', '@theme.manager', '@date.formatter', '@file_url_generator']
  1825. tags:
  1826. - { name: twig.extension, priority: 100 }
  1827. Drupal\Core\Template\ComponentsTwigExtension:
  1828. arguments: ['@plugin.manager.sdc', '@Drupal\Core\Theme\Component\ComponentValidator']
  1829. tags:
  1830. - { name: twig.extension, priority: 101 }
  1831. Twig\Extra\Html\HtmlExtension:
  1832. tags:
  1833. - { name: twig.extension, priority: 101 }
  1834. Drupal\Core\Template\IconsTwigExtension:
  1835. arguments: ['@plugin.manager.icon_pack']
  1836. tags:
  1837. - { name: twig.extension, priority: 101 }
  1838. twig.extension.debug:
  1839. class: Twig\Extension\DebugExtension
  1840. tags:
  1841. - { name: twig.extension, priority: 50 }
  1842. twig.extension.varDumper:
  1843. class: Drupal\Core\Template\DebugExtension
  1844. tags:
  1845. # This extension is loaded after the Twig Debug Extension because for Twig
  1846. # Extensions, last extension loaded takes precedent. This allows this
  1847. # extension to override the default Twig Debug Extension conditionally
  1848. # when Symfony VarDumper is available.
  1849. - { name: twig.extension, priority: 25 }
  1850. twig.loader:
  1851. class: Twig\Loader\ChainLoader
  1852. public: false
  1853. tags:
  1854. - { name: service_collector, tag: twig.loader, call: addLoader, required: TRUE }
  1855. Twig\Loader\LoaderInterface: '@twig.loader'
  1856. twig.loader.filesystem:
  1857. class: Drupal\Core\Template\Loader\FilesystemLoader
  1858. # We use '.' instead of '%app.root%' as the path for non-namespaced template
  1859. # files so that they match the relative paths of templates loaded via the
  1860. # theme registry or via Twig namespaces.
  1861. arguments: ['.', '@module_handler', '@theme_handler', '%twig.config%']
  1862. tags:
  1863. - { name: twig.loader, priority: 100 }
  1864. twig.loader.theme_registry:
  1865. class: Drupal\Core\Template\Loader\ThemeRegistryLoader
  1866. arguments: ['@theme.registry']
  1867. tags:
  1868. - { name: twig.loader, priority: 0 }
  1869. twig.loader.string:
  1870. class: Drupal\Core\Template\Loader\StringLoader
  1871. tags:
  1872. - { name: twig.loader, priority: -100 }
  1873. element_info:
  1874. alias: plugin.manager.element_info
  1875. file.htaccess_writer:
  1876. class: Drupal\Core\File\HtaccessWriter
  1877. arguments: ['@logger.channel.security', '@stream_wrapper_manager', '@settings']
  1878. Drupal\Core\File\HtaccessWriterInterface: '@file.htaccess_writer'
  1879. file.mime_type.guesser:
  1880. class: Drupal\Core\File\MimeType\MimeTypeGuesser
  1881. arguments: ['@stream_wrapper_manager', !tagged_iterator mime_type_guesser]
  1882. file.mime_type.guesser.extension:
  1883. class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
  1884. arguments: ['@Drupal\Core\File\MimeType\MimeTypeMapInterface']
  1885. tags:
  1886. - { name: mime_type_guesser }
  1887. Drupal\Core\File\MimeType\MimeTypeMapFactory:
  1888. autowire: true
  1889. public: false
  1890. Drupal\Core\File\MimeType\MimeTypeMapInterface:
  1891. factory: ['@Drupal\Core\File\MimeType\MimeTypeMapFactory', create]
  1892. Drupal\Core\File\EventSubscriber\LegacyMimeTypeMapLoadedSubscriber:
  1893. autowire: true
  1894. # Currently needs to be public as it is called by
  1895. # \Drupal\Core\Render\Element\StatusMessages.
  1896. # @todo Consider making this service private again after
  1897. # https://www.drupal.org/node/2367555 lands.
  1898. render_placeholder_generator:
  1899. class: Drupal\Core\Render\PlaceholderGenerator
  1900. arguments: ['@cache_contexts_manager', '%renderer.config%']
  1901. Drupal\Core\Render\PlaceholderGeneratorInterface: '@render_placeholder_generator'
  1902. render_cache:
  1903. class: Drupal\Core\Render\PlaceholderingRenderCache
  1904. arguments: ['@request_stack', '@variation_cache_factory', '@cache_contexts_manager', '@render_placeholder_generator']
  1905. Drupal\Core\Render\RenderCacheInterface: '@render_cache'
  1906. renderer:
  1907. class: Drupal\Core\Render\Renderer
  1908. arguments: ['@callable_resolver', '@theme.manager', '@plugin.manager.element_info', '@render_placeholder_generator', '@render_cache', '@request_stack', '%renderer.config%']
  1909. Drupal\Core\Render\RendererInterface: '@renderer'
  1910. early_rendering_controller_wrapper_subscriber:
  1911. class: Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber
  1912. arguments: ['@http_kernel.controller.argument_resolver', '@renderer']
  1913. # Placeholder strategies for rendering placeholders.
  1914. html_response.placeholder_strategy_subscriber:
  1915. class: Drupal\Core\EventSubscriber\HtmlResponsePlaceholderStrategySubscriber
  1916. arguments: ['@placeholder_strategy']
  1917. placeholder_strategy:
  1918. class: Drupal\Core\Render\Placeholder\ChainedPlaceholderStrategy
  1919. tags:
  1920. - { name: service_collector, tag: placeholder_strategy, call: addPlaceholderStrategy }
  1921. Drupal\Core\Render\Placeholder\PlaceholderStrategyInterface: '@placeholder_strategy'
  1922. placeholder_strategy.cached:
  1923. class: Drupal\Core\Render\Placeholder\CachedStrategy
  1924. arguments: ['@placeholder_strategy', '@render_cache']
  1925. tags:
  1926. - { name: placeholder_strategy, priority: 100 }
  1927. placeholder_strategy.single_flush:
  1928. class: Drupal\Core\Render\Placeholder\SingleFlushStrategy
  1929. tags:
  1930. - { name: placeholder_strategy, priority: -1000 }
  1931. email.validator:
  1932. class: Drupal\Component\Utility\EmailValidator
  1933. Drupal\Component\Utility\EmailValidatorInterface: '@email.validator'
  1934. update.update_hook_registry:
  1935. class: Drupal\Core\Update\UpdateHookRegistry
  1936. arguments: ['%container.modules%', '@keyvalue']
  1937. Drupal\Core\Update\UpdateHookRegistry: '@update.update_hook_registry'
  1938. update.post_update_registry:
  1939. class: Drupal\Core\Update\UpdateRegistry
  1940. arguments: ['%app.root%', '%site.path%', '%container.modules%', '@update.key_value.post_update', '@theme_handler', 'post_update']
  1941. update.key_value.post_update:
  1942. class: Drupal\Core\KeyValueStore\KeyValueStoreInterface
  1943. factory: ['@keyvalue', 'get']
  1944. arguments: ['post_update']
  1945. public: false
  1946. uuid:
  1947. class: Drupal\Component\Uuid\Php
  1948. Drupal\Component\Uuid\UuidInterface: '@uuid'
  1949. response_filter.active_link:
  1950. class: Drupal\Core\EventSubscriber\ActiveLinkResponseFilter
  1951. arguments: ['@current_user', '@path.current', '@path.matcher', '@language_manager']
  1952. response_filter.rss.relative_url:
  1953. class: Drupal\Core\EventSubscriber\RssResponseRelativeUrlFilter
  1954. messenger:
  1955. class: Drupal\Core\Messenger\Messenger
  1956. arguments: ['@session.flash_bag', '@page_cache_kill_switch']
  1957. Drupal\Core\Messenger\MessengerInterface: '@messenger'
  1958. tempstore.private:
  1959. class: Drupal\Core\TempStore\PrivateTempStoreFactory
  1960. arguments: ['@keyvalue.expirable', '@lock', '@current_user', '@request_stack', '%tempstore.expire%']
  1961. tags:
  1962. - { name: backend_overridable }
  1963. Drupal\Core\TempStore\PrivateTempStoreFactory: '@tempstore.private'
  1964. tempstore.shared:
  1965. class: Drupal\Core\TempStore\SharedTempStoreFactory
  1966. arguments: ['@keyvalue.expirable', '@lock', '@request_stack', '@current_user', '%tempstore.expire%']
  1967. tags:
  1968. - { name: backend_overridable }
  1969. Drupal\Core\TempStore\SharedTempStoreFactory: '@tempstore.shared'
  1970. pager.manager:
  1971. class: Drupal\Core\Pager\PagerManager
  1972. arguments: ['@pager.parameters']
  1973. Drupal\Core\Pager\PagerManagerInterface: '@pager.manager'
  1974. pager.parameters:
  1975. class: Drupal\Core\Pager\PagerParameters
  1976. arguments: ['@request_stack']
  1977. Drupal\Core\Pager\PagerParametersInterface: '@pager.parameters'
  1978. Drupal\Core\Pager\PagerPreprocess:
  1979. class: Drupal\Core\Pager\PagerPreprocess
  1980. autowire: true
  1981. Drupal\Core\Theme\Component\SchemaCompatibilityChecker: {}
  1982. Drupal\Core\Theme\Component\ComponentValidator:
  1983. calls:
  1984. - [setValidator, []]
  1985. Drupal\Core\Theme\ComponentNegotiator:
  1986. arguments:
  1987. - '@theme.manager'
  1988. plugin.manager.sdc:
  1989. public: true
  1990. class: Drupal\Core\Theme\ComponentPluginManager
  1991. arguments:
  1992. - '@module_handler'
  1993. - '@theme_handler'
  1994. - '@cache.discovery'
  1995. - '@config.factory'
  1996. - '@theme.manager'
  1997. - '@Drupal\Core\Theme\ComponentNegotiator'
  1998. - '@file_system'
  1999. - '@Drupal\Core\Theme\Component\SchemaCompatibilityChecker'
  2000. - '@Drupal\Core\Theme\Component\ComponentValidator'
  2001. - '%app.root%'
  2002. Drupal\Core\Theme\ComponentPluginManager: '@plugin.manager.sdc'
  2003. Drupal\Core\Template\Loader\ComponentLoader:
  2004. arguments:
  2005. - '@plugin.manager.sdc'
  2006. - '@logger.channel.default'
  2007. tags:
  2008. - { name: twig.loader, priority: 5 }
  2009. Drupal\Core\EventSubscriber\CsrfExceptionSubscriber: ~
  2010. plugin.manager.icon_pack:
  2011. class: Drupal\Core\Theme\Icon\Plugin\IconPackManager
  2012. calls:
  2013. - [setValidator, []]
  2014. arguments:
  2015. [
  2016. '@module_handler',
  2017. '@theme_handler',
  2018. '@cache.discovery',
  2019. '@plugin.manager.icon_extractor',
  2020. '@Drupal\Core\Theme\Icon\IconCollector',
  2021. '%app.root%',
  2022. ]
  2023. Drupal\Core\Theme\Icon\Plugin\IconPackManagerInterface: '@plugin.manager.icon_pack'
  2024. plugin.manager.icon_extractor:
  2025. class: Drupal\Core\Theme\Icon\IconExtractorPluginManager
  2026. parent: default_plugin_manager
  2027. arguments: ['@plugin_form.factory']
  2028. Drupal\Core\Theme\Icon\IconExtractorPluginManager: '@plugin.manager.icon_extractor'
  2029. Drupal\Core\Theme\Icon\IconFinder:
  2030. autowire: true
  2031. arguments:
  2032. [
  2033. '@file_url_generator',
  2034. '@logger.channel.default',
  2035. '%app.root%',
  2036. ]
  2037. Drupal\Core\Theme\Icon\IconCollector:
  2038. arguments:
  2039. [
  2040. '@plugin.manager.icon_extractor',
  2041. '@cache.default',
  2042. '@lock',
  2043. ]
  2044. tags:
  2045. - { name: needs_destruction }
  2046. Drupal\Core\Extension\ThemeSettingsProvider:
  2047. autowire: true

Services

Title Deprecated Summary
Drupal\Core\File\MimeType\MimeTypeMapInterface
Drupal\Core\Form\FormPreprocess Drupal\Core\Form\FormPreprocess
Drupal\Core\Menu\MenuPreprocess Drupal\Core\Menu\MenuPreprocess
Drupal\Core\Pager\PagerPreprocess Drupal\Core\Pager\PagerPreprocess
Drupal\Core\Session\UserSessionRepositoryInterface Drupal\Core\Session\UserSessionRepository
Drupal\Core\Template\ComponentsTwigExtension
Drupal\Core\Template\IconsTwigExtension
Drupal\Core\Template\Loader\ComponentLoader
Drupal\Core\Template\TwigThemeEngine
Drupal\Core\Theme\ComponentNegotiator
Drupal\Core\Theme\Component\ComponentValidator
Drupal\Core\Theme\Component\SchemaCompatibilityChecker
Drupal\Core\Theme\Icon\IconCollector
Drupal\Core\Theme\Icon\IconFinder
Drupal\Core\Theme\ImagePreprocess Drupal\Core\Theme\ImagePreprocess
Drupal\Core\Theme\ThemePreprocess Drupal\Core\Theme\ThemePreprocess
early_rendering_controller_wrapper_subscriber Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber
element_info Alias of plugin.manager.element_info
email.validator Drupal\Component\Utility\EmailValidator
entity.autocomplete_matcher Drupal\Core\Entity\EntityAutocompleteMatcher
entity.bundle_config_import_validator Drupal\Core\Entity\Event\BundleConfigImportValidate
entity.definition_update_manager Drupal\Core\Entity\EntityDefinitionUpdateManager
entity.form_builder Drupal\Core\Entity\EntityFormBuilder
entity.last_installed_schema.repository Drupal\Core\Entity\EntityLastInstalledSchemaRepository
entity.memory_cache Drupal\Core\Cache\MemoryCache\LruMemoryCache
entity.query.config Drupal\Core\Config\Entity\Query\QueryFactory
entity.query.keyvalue Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
entity.query.null Drupal\Core\Entity\Query\Null\QueryFactory
entity.query.sql Drupal\Core\Entity\Query\Sql\QueryFactory
entity.repository Drupal\Core\Entity\EntityRepository
entity_bundle.listener Drupal\Core\Entity\EntityBundleListener
entity_display.repository Drupal\Core\Entity\EntityDisplayRepository
entity_field.deleted_fields_repository Drupal\Core\Field\DeletedFieldsRepository
entity_field.manager Drupal\Core\Entity\EntityFieldManager
entity_route_subscriber Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
entity_type.bundle.info Drupal\Core\Entity\EntityTypeBundleInfo
entity_type.listener Drupal\Core\Entity\EntityTypeListener
entity_type.manager Drupal\Core\Entity\EntityTypeManager
entity_type.repository Drupal\Core\Entity\EntityTypeRepository
event_dispatcher Symfony\Component\EventDispatcher\EventDispatcher
exception.custom_page_html Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
exception.default_html Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
exception.default_json Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
exception.enforced_form_response Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber
exception.fast_404_html Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
exception.final Drupal\Core\EventSubscriber\FinalExceptionSubscriber
exception.logger Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
exception.needs_installer Drupal\Core\EventSubscriber\ExceptionDetectNeedsInstallSubscriber
extension.list.database_driver Drupal\Core\Extension\DatabaseDriverList
extension.list.module Drupal\Core\Extension\ModuleExtensionList

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.