core.services.yml

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

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.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.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
cache.backend.memory.memory Drupal\Core\Cache\MemoryCache\MemoryCacheFactory
cache.backend.php Drupal\Core\Cache\PhpBackendFactory

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