core.services.yml

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

Services

Title Deprecated Summary
access_arguments_resolver_factory Drupal\Core\Access\AccessArgumentsResolverFactory
access_check.csrf Drupal\Core\Access\CsrfAccessCheck
access_check.custom Drupal\Core\Access\CustomAccessCheck
access_check.default Drupal\Core\Access\DefaultAccessCheck
access_check.entity Drupal\Core\Entity\EntityAccessCheck
access_check.entity_create Drupal\Core\Entity\EntityCreateAccessCheck
access_check.entity_create_any Drupal\Core\Entity\EntityCreateAnyAccessCheck
access_check.entity_delete_multiple Drupal\Core\Entity\EntityDeleteMultipleAccessCheck
access_check.header.csrf Drupal\Core\Access\CsrfRequestHeaderAccessCheck
access_check.theme Drupal\Core\Theme\ThemeAccessCheck
access_manager Drupal\Core\Access\AccessManager
access_manager.check_provider Drupal\Core\Access\CheckProvider
access_policy.super_user Drupal\Core\Session\SuperUserAccessPolicy
access_policy.user_roles Drupal\Core\Session\UserRolesAccessPolicy
access_policy_processor Drupal\Core\Session\AccessPolicyProcessor
account_switcher Drupal\Core\Session\AccountSwitcher
ajax_response.attachments_processor Drupal\Core\Ajax\AjaxResponseAttachmentsProcessor
ajax_response.subscriber Drupal\Core\EventSubscriber\AjaxResponseSubscriber
anonymous_user_response_subscriber Drupal\Core\EventSubscriber\AnonymousUserResponseSubscriber
argument_resolver.default Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
argument_resolver.psr7_request Drupal\Core\Controller\ArgumentResolver\Psr7RequestValueResolver
argument_resolver.query_parameter Symfony\Component\HttpKernel\Controller\ArgumentResolver\QueryParameterValueResolver
argument_resolver.request Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
argument_resolver.request_attribute Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
argument_resolver.route_match Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
asset.css.collection_grouper Drupal\Core\Asset\CssCollectionGrouper
asset.css.collection_optimizer Drupal\Core\Asset\CssCollectionOptimizerLazy
asset.css.collection_renderer Drupal\Core\Asset\CssCollectionRenderer
asset.css.dumper Drupal\Core\Asset\AssetDumper
asset.css.optimizer Drupal\Core\Asset\CssOptimizer
asset.js.collection_grouper Drupal\Core\Asset\JsCollectionGrouper
asset.js.collection_optimizer Drupal\Core\Asset\JsCollectionOptimizerLazy
asset.js.collection_renderer Drupal\Core\Asset\JsCollectionRenderer
asset.js.dumper Drupal\Core\Asset\AssetDumper
asset.js.optimizer Drupal\Core\Asset\JsOptimizer
asset.query_string Drupal\Core\Asset\AssetQueryString
asset.resolver Drupal\Core\Asset\AssetResolver
authentication Drupal\Core\Authentication\AuthenticationManager
authentication_collector Drupal\Core\Authentication\AuthenticationCollector
authentication_subscriber Drupal\Core\EventSubscriber\AuthenticationSubscriber
bare_html_page_renderer Drupal\Core\Render\BareHtmlPageRenderer
batch.storage Drupal\Core\Batch\BatchStorage
breadcrumb Drupal\Core\Breadcrumb\BreadcrumbManager
cache.access_policy Drupal\Core\Cache\CacheBackendInterface
cache.access_policy_memory Drupal\Core\Cache\CacheBackendInterface
cache.asset_chain Drupal\Core\Cache\BackendChain
cache.backend.apcu Drupal\Core\Cache\ApcuBackendFactory
cache.backend.chainedfast Drupal\Core\Cache\ChainedFastBackendFactory
cache.backend.database Drupal\Core\Cache\DatabaseBackendFactory
cache.backend.memory Drupal\Core\Cache\MemoryBackendFactory

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