core.services.yml

Same filename in other branches
  1. 9 core/core.services.yml
  2. 8.9.x core/core.services.yml
  3. 10 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. autowire: true
  578. Drupal\Core\Queue\QueueFactory: '@queue'
  579. queue.database:
  580. class: Drupal\Core\Queue\QueueDatabaseFactory
  581. arguments: ['@database']
  582. Drupal\Core\Queue\QueueDatabaseFactory: '@queue.database'
  583. path.current:
  584. class: Drupal\Core\Path\CurrentPathStack
  585. arguments: ['@request_stack']
  586. Drupal\Core\Path\CurrentPathStack: '@path.current'
  587. http_handler_stack:
  588. class: GuzzleHttp\HandlerStack
  589. public: false
  590. factory: GuzzleHttp\HandlerStack::create
  591. configurator: ['@http_handler_stack_configurator', configure]
  592. GuzzleHttp\HandlerStack: '@http_handler_stack'
  593. http_handler_stack_configurator:
  594. class: Drupal\Core\Http\HandlerStackConfigurator
  595. public: false
  596. arguments: ['@service_container']
  597. tags:
  598. - { name: service_id_collector, tag: http_client_middleware }
  599. Drupal\Core\Http\HandlerStackConfigurator: '@http_handler_stack_configurator'
  600. http_client:
  601. class: GuzzleHttp\Client
  602. factory: ['@http_client_factory', 'fromOptions']
  603. GuzzleHttp\ClientInterface: '@http_client'
  604. Psr\Http\Client\ClientInterface: '@http_client'
  605. http_client_factory:
  606. class: Drupal\Core\Http\ClientFactory
  607. arguments: ['@http_handler_stack']
  608. Drupal\Core\Http\ClientFactory: '@http_client_factory'
  609. plugin.manager.link_relation_type:
  610. class: \Drupal\Core\Http\LinkRelationTypeManager
  611. arguments: ['%app.root%', '@module_handler', '@cache.discovery']
  612. theme.negotiator:
  613. class: Drupal\Core\Theme\ThemeNegotiator
  614. arguments: ['@access_check.theme', '@class_resolver']
  615. tags:
  616. - { name: service_id_collector, tag: theme_negotiator }
  617. Drupal\Core\Theme\ThemeNegotiatorInterface: '@theme.negotiator'
  618. theme.negotiator.default:
  619. class: Drupal\Core\Theme\DefaultNegotiator
  620. arguments: ['@config.factory']
  621. tags:
  622. - { name: theme_negotiator, priority: -100 }
  623. theme.negotiator.ajax_base_page:
  624. class: Drupal\Core\Theme\AjaxBasePageNegotiator
  625. arguments: ['@csrf_token', '@config.factory', '@request_stack']
  626. tags:
  627. - { name: theme_negotiator, priority: 1000 }
  628. container.namespaces:
  629. class: ArrayObject
  630. arguments: [ '%container.namespaces%' ]
  631. container.trait:
  632. abstract: true
  633. calls:
  634. - [setContainer, ['@service_container']]
  635. default_plugin_manager:
  636. abstract: true
  637. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  638. module_handler:
  639. class: Drupal\Core\Extension\ModuleHandler
  640. arguments: ['%app.root%', '%container.modules%', '@event_dispatcher', '%hook_implementations_map%']
  641. Drupal\Core\Extension\ModuleHandlerInterface: '@module_handler'
  642. module_installer:
  643. class: Drupal\Core\Extension\ModuleInstaller
  644. autowire: true
  645. lazy: true
  646. Drupal\Core\Extension\ModuleInstallerInterface: '@module_installer'
  647. module_installer.uninstall_validators:
  648. class: \IteratorIterator
  649. arguments: [!tagged_iterator module_install.uninstall_validator]
  650. deprecated: The "%service_id%" service is deprecated in drupal:11.1.0 and is removed from drupal:12.0.0. Inject "!tagged_iterator module_install.uninstall_validator" instead. See https://www.drupal.org/node/3432595
  651. extension.list.module:
  652. class: Drupal\Core\Extension\ModuleExtensionList
  653. arguments: ['%app.root%', 'module', '@cache.default', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.profile', '%install_profile%', '%container.modules%']
  654. Drupal\Core\Extension\ModuleExtensionList: '@extension.list.module'
  655. extension.list.profile:
  656. class: Drupal\Core\Extension\ProfileExtensionList
  657. arguments: ['%app.root%', 'profile', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
  658. Drupal\Core\Extension\ProfileExtensionList: '@extension.list.profile'
  659. extension.list.theme:
  660. class: Drupal\Core\Extension\ThemeExtensionList
  661. arguments: ['%app.root%', 'theme', '@cache.default', '@info_parser', '@module_handler', '@state', '@config.factory', '@extension.list.theme_engine', '%install_profile%']
  662. Drupal\Core\Extension\ThemeExtensionList: '@extension.list.theme'
  663. extension.list.theme_engine:
  664. class: Drupal\Core\Extension\ThemeEngineExtensionList
  665. arguments: ['%app.root%', 'theme_engine', '@cache.default', '@info_parser', '@module_handler', '@state', '%install_profile%']
  666. Drupal\Core\Extension\ThemeEngineExtensionList: '@extension.list.theme_engine'
  667. extension.list.database_driver:
  668. class: Drupal\Core\Extension\DatabaseDriverList
  669. arguments: ['%app.root%', 'database_driver', '@cache.default']
  670. Drupal\Core\Extension\DatabaseDriverList: '@extension.list.database_driver'
  671. extension.path.resolver:
  672. class: Drupal\Core\Extension\ExtensionPathResolver
  673. arguments: ['@extension.list.module', '@extension.list.profile', '@extension.list.theme', '@extension.list.theme_engine']
  674. Drupal\Core\Extension\ExtensionPathResolver: '@extension.path.resolver'
  675. content_uninstall_validator:
  676. class: Drupal\Core\Entity\ContentUninstallValidator
  677. arguments: ['@entity_type.manager', '@string_translation']
  678. required_module_uninstall_validator:
  679. class: Drupal\Core\Extension\RequiredModuleUninstallValidator
  680. arguments: ['@string_translation', '@extension.list.module']
  681. module_required_by_themes_uninstall_validator:
  682. class: Drupal\Core\Extension\ModuleRequiredByThemesUninstallValidator
  683. arguments: ['@string_translation', '@extension.list.module', '@extension.list.theme']
  684. database_driver_uninstall_validator:
  685. class: Drupal\Core\Extension\DatabaseDriverUninstallValidator
  686. arguments: ['@string_translation', '@extension.list.module', '@database']
  687. install_profile_uninstall_validator:
  688. class: Drupal\Core\Extension\InstallProfileUninstallValidator
  689. arguments: ['@string_translation', '@extension.list.module', '@extension.list.theme', '%install_profile%', '%app.root%', '%site.path%']
  690. theme_handler:
  691. class: Drupal\Core\Extension\ThemeHandler
  692. arguments: ['%app.root%', '@config.factory', '@extension.list.theme']
  693. Drupal\Core\Extension\ThemeHandlerInterface: '@theme_handler'
  694. theme_installer:
  695. class: Drupal\Core\Extension\ThemeInstaller
  696. 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']
  697. Drupal\Core\Extension\ThemeInstallerInterface: '@theme_installer'
  698. entity.memory_cache:
  699. class: Drupal\Core\Cache\MemoryCache\MemoryCache
  700. arguments: ['@datetime.time']
  701. Drupal\Core\Cache\MemoryCache\MemoryCacheInterface: '@entity.memory_cache'
  702. entity_type.manager:
  703. class: Drupal\Core\Entity\EntityTypeManager
  704. arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@string_translation', '@class_resolver', '@entity.last_installed_schema.repository', '@service_container']
  705. tags:
  706. - { name: plugin_manager_cache_clear }
  707. Drupal\Core\Entity\EntityTypeManagerInterface: '@entity_type.manager'
  708. entity_type.repository:
  709. class: Drupal\Core\Entity\EntityTypeRepository
  710. arguments: ['@entity_type.manager', '@entity_type.bundle.info']
  711. Drupal\Core\Entity\EntityTypeRepositoryInterface: '@entity_type.repository'
  712. entity_type.bundle.info:
  713. class: Drupal\Core\Entity\EntityTypeBundleInfo
  714. arguments: ['@entity_type.manager', '@language_manager', '@module_handler', '@typed_data_manager', '@cache.discovery']
  715. Drupal\Core\Entity\EntityTypeBundleInfoInterface: '@entity_type.bundle.info'
  716. entity.repository:
  717. class: Drupal\Core\Entity\EntityRepository
  718. arguments: ['@entity_type.manager', '@language_manager', '@context.repository']
  719. Drupal\Core\Entity\EntityRepositoryInterface: '@entity.repository'
  720. entity_display.repository:
  721. class: Drupal\Core\Entity\EntityDisplayRepository
  722. arguments: ['@entity_type.manager', '@module_handler', '@cache.discovery', '@language_manager']
  723. Drupal\Core\Entity\EntityDisplayRepositoryInterface: '@entity_display.repository'
  724. entity_field.manager:
  725. class: Drupal\Core\Entity\EntityFieldManager
  726. 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']
  727. Drupal\Core\Entity\EntityFieldManagerInterface: '@entity_field.manager'
  728. entity_type.listener:
  729. class: Drupal\Core\Entity\EntityTypeListener
  730. arguments: ['@entity_type.manager', '@entity_field.manager', '@event_dispatcher', '@entity.last_installed_schema.repository']
  731. Drupal\Core\Entity\EntityTypeListenerInterface: '@entity_type.listener'
  732. entity_bundle.listener:
  733. class: Drupal\Core\Entity\EntityBundleListener
  734. arguments: ['@entity_type.manager', '@entity_type.bundle.info', '@entity_field.manager', '@module_handler']
  735. Drupal\Core\Entity\EntityBundleListenerInterface: '@entity_bundle.listener'
  736. entity_route_subscriber:
  737. class: Drupal\Core\EventSubscriber\EntityRouteProviderSubscriber
  738. arguments: ['@entity_type.manager']
  739. entity.definition_update_manager:
  740. class: Drupal\Core\Entity\EntityDefinitionUpdateManager
  741. arguments: ['@entity_type.manager', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_type.listener', '@field_storage_definition.listener']
  742. Drupal\Core\Entity\EntityDefinitionUpdateManagerInterface: '@entity.definition_update_manager'
  743. entity.last_installed_schema.repository:
  744. class: Drupal\Core\Entity\EntityLastInstalledSchemaRepository
  745. arguments: ['@keyvalue', '@cache.discovery']
  746. Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface: '@entity.last_installed_schema.repository'
  747. entity_field.deleted_fields_repository:
  748. class: Drupal\Core\Field\DeletedFieldsRepository
  749. arguments: ['@state']
  750. Drupal\Core\Field\DeletedFieldsRepositoryInterface: '@entity_field.deleted_fields_repository'
  751. field_storage_definition.listener:
  752. class: Drupal\Core\Field\FieldStorageDefinitionListener
  753. arguments: ['@entity_type.manager', '@event_dispatcher', '@entity.last_installed_schema.repository', '@entity_field.manager', '@entity_field.deleted_fields_repository']
  754. Drupal\Core\Field\FieldStorageDefinitionListenerInterface: '@field_storage_definition.listener'
  755. field_definition.listener:
  756. class: Drupal\Core\Field\FieldDefinitionListener
  757. arguments: ['@entity_type.manager', '@entity_field.manager', '@keyvalue', '@cache.discovery']
  758. Drupal\Core\Field\FieldDefinitionListenerInterface: '@field_definition.listener'
  759. entity.form_builder:
  760. class: Drupal\Core\Entity\EntityFormBuilder
  761. arguments: ['@entity_type.manager', '@form_builder']
  762. Drupal\Core\Entity\EntityFormBuilderInterface: '@entity.form_builder'
  763. entity.bundle_config_import_validator:
  764. class: Drupal\Core\Entity\Event\BundleConfigImportValidate
  765. arguments: ['@config.manager', '@entity_type.manager']
  766. entity.autocomplete_matcher:
  767. class: Drupal\Core\Entity\EntityAutocompleteMatcher
  768. arguments: ['@plugin.manager.entity_reference_selection']
  769. Drupal\Core\Entity\EntityAutocompleteMatcherInterface: '@entity.autocomplete_matcher'
  770. plugin_form.factory:
  771. class: Drupal\Core\Plugin\PluginFormFactory
  772. arguments: ['@class_resolver']
  773. Drupal\Core\Plugin\PluginFormFactoryInterface: '@plugin_form.factory'
  774. plugin.manager.entity_reference_selection:
  775. class: Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManager
  776. parent: default_plugin_manager
  777. Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface: '@plugin.manager.entity_reference_selection'
  778. plugin.manager.block:
  779. class: Drupal\Core\Block\BlockManager
  780. parent: default_plugin_manager
  781. arguments: ['@logger.channel.default']
  782. Drupal\Core\Block\BlockManagerInterface: '@plugin.manager.block'
  783. plugin.manager.field.field_type:
  784. class: Drupal\Core\Field\FieldTypePluginManager
  785. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@typed_data_manager', '@plugin.manager.field.field_type_category']
  786. Drupal\Core\Field\FieldTypePluginManagerInterface: '@plugin.manager.field.field_type'
  787. plugin.manager.field.field_type_category:
  788. class: \Drupal\Core\Field\FieldTypeCategoryManager
  789. arguments: [ '%app.root%', '@module_handler', '@cache.discovery' ]
  790. Drupal\Core\Field\FieldTypeCategoryManagerInterface: '@plugin.manager.field.field_type_category'
  791. plugin.manager.field.widget:
  792. class: Drupal\Core\Field\WidgetPluginManager
  793. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
  794. plugin.manager.field.formatter:
  795. class: Drupal\Core\Field\FormatterPluginManager
  796. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
  797. plugin.manager.archiver:
  798. class: Drupal\Core\Archiver\ArchiverManager
  799. parent: default_plugin_manager
  800. arguments: ['@file_system']
  801. plugin.manager.action:
  802. class: Drupal\Core\Action\ActionManager
  803. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
  804. plugin.manager.menu.link:
  805. class: Drupal\Core\Menu\MenuLinkManager
  806. arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
  807. Drupal\Core\Menu\MenuLinkManagerInterface: '@plugin.manager.menu.link'
  808. menu.link_tree:
  809. class: Drupal\Core\Menu\MenuLinkTree
  810. arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@callable_resolver']
  811. Drupal\Core\Menu\MenuLinkTreeInterface: '@menu.link_tree'
  812. menu.default_tree_manipulators:
  813. class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
  814. arguments: ['@access_manager', '@current_user', '@entity_type.manager', '@module_handler']
  815. Drupal\Core\Menu\DefaultMenuLinkTreeManipulators: '@menu.default_tree_manipulators'
  816. menu.active_trail:
  817. class: Drupal\Core\Menu\MenuActiveTrail
  818. arguments: ['@plugin.manager.menu.link', '@current_route_match', '@cache.menu', '@lock']
  819. tags:
  820. - { name: needs_destruction }
  821. lazy: true
  822. Drupal\Core\Menu\MenuActiveTrailInterface: '@menu.active_trail'
  823. menu.parent_form_selector:
  824. class: Drupal\Core\Menu\MenuParentFormSelector
  825. arguments: ['@menu.link_tree', '@entity_type.manager', '@string_translation']
  826. Drupal\Core\Menu\MenuParentFormSelectorInterface: '@menu.parent_form_selector'
  827. plugin.manager.menu.local_action:
  828. class: Drupal\Core\Menu\LocalActionManager
  829. arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
  830. Drupal\Core\Menu\LocalActionManagerInterface: '@plugin.manager.menu.local_action'
  831. plugin.manager.menu.local_task:
  832. class: Drupal\Core\Menu\LocalTaskManager
  833. arguments: ['@http_kernel.controller.argument_resolver', '@request_stack', '@current_route_match', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
  834. Drupal\Core\Menu\LocalTaskManagerInterface: '@plugin.manager.menu.local_task'
  835. plugin.manager.menu.contextual_link:
  836. class: Drupal\Core\Menu\ContextualLinkManager
  837. arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
  838. Drupal\Core\Menu\ContextualLinkManagerInterface: '@plugin.manager.menu.contextual_link'
  839. plugin.manager.display_variant:
  840. class: Drupal\Core\Display\VariantManager
  841. parent: default_plugin_manager
  842. plugin.manager.queue_worker:
  843. class: Drupal\Core\Queue\QueueWorkerManager
  844. parent: default_plugin_manager
  845. Drupal\Core\Queue\QueueWorkerManagerInterface: '@plugin.manager.queue_worker'
  846. plugin.cache_clearer:
  847. class: Drupal\Core\Plugin\CachedDiscoveryClearer
  848. autowire: true
  849. Drupal\Core\Plugin\CachedDiscoveryClearerInterface: '@plugin.cache_clearer'
  850. paramconverter.menu_link:
  851. class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
  852. tags:
  853. - { name: paramconverter }
  854. arguments: ['@plugin.manager.menu.link']
  855. lazy: true
  856. menu.tree_storage:
  857. class: Drupal\Core\Menu\MenuTreeStorage
  858. arguments: ['@database', '@cache.menu', '@cache_tags.invalidator', 'menu_tree']
  859. public: false # Private to plugin.manager.menu.link and menu.link_tree
  860. tags:
  861. - { name: backend_overridable }
  862. Drupal\Core\Menu\MenuTreeStorageInterface: '@menu.tree_storage'
  863. menu_link.static.overrides:
  864. class: Drupal\Core\Menu\StaticMenuLinkOverrides
  865. arguments: ['@config.factory']
  866. Drupal\Core\Menu\StaticMenuLinkOverridesInterface: '@menu_link.static.overrides'
  867. request_stack:
  868. class: Symfony\Component\HttpFoundation\RequestStack
  869. tags:
  870. - { name: persist }
  871. Symfony\Component\HttpFoundation\RequestStack: '@request_stack'
  872. current_route_match:
  873. class: Drupal\Core\Routing\CurrentRouteMatch
  874. arguments: ['@request_stack']
  875. Drupal\Core\Routing\RouteMatchInterface: '@current_route_match'
  876. event_dispatcher:
  877. class: Symfony\Component\EventDispatcher\EventDispatcher
  878. Psr\EventDispatcher\EventDispatcherInterface: '@event_dispatcher'
  879. Symfony\Contracts\EventDispatcher\EventDispatcherInterface: '@event_dispatcher'
  880. controller_resolver:
  881. class: Drupal\Core\Controller\ControllerResolver
  882. arguments: ['@callable_resolver']
  883. Drupal\Core\Controller\ControllerResolverInterface: '@controller_resolver'
  884. Symfony\Component\HttpKernel\Controller\ControllerResolverInterface: '@controller_resolver'
  885. class_resolver:
  886. class: Drupal\Core\DependencyInjection\ClassResolver
  887. arguments: ['@service_container']
  888. Drupal\Core\DependencyInjection\ClassResolverInterface: '@class_resolver'
  889. callable_resolver:
  890. class: Drupal\Core\Utility\CallableResolver
  891. arguments: ['@class_resolver']
  892. Drupal\Core\Utility\CallableResolver: '@callable_resolver'
  893. title_resolver:
  894. class: Drupal\Core\Controller\TitleResolver
  895. arguments: ['@controller_resolver', '@string_translation', '@http_kernel.controller.argument_resolver']
  896. Drupal\Core\Controller\TitleResolverInterface: '@title_resolver'
  897. http_kernel:
  898. class: Drupal\Core\StackMiddleware\StackedHttpKernel
  899. Symfony\Component\HttpKernel\HttpKernelInterface: '@http_kernel'
  900. http_kernel.basic:
  901. class: Symfony\Component\HttpKernel\HttpKernel
  902. arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack', '@http_kernel.controller.argument_resolver', true]
  903. http_kernel.controller.argument_resolver:
  904. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver
  905. 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']]
  906. Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface: '@http_kernel.controller.argument_resolver'
  907. http_kernel.controller.argument_metadata_factory:
  908. class: Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactory
  909. public: false
  910. Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadataFactoryInterface: '@http_kernel.controller.argument_metadata_factory'
  911. argument_resolver.request_attribute:
  912. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
  913. public: false
  914. argument_resolver.request:
  915. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
  916. public: false
  917. argument_resolver.psr7_request:
  918. class: Drupal\Core\Controller\ArgumentResolver\Psr7RequestValueResolver
  919. arguments: ['@psr7.http_message_factory']
  920. public: false
  921. argument_resolver.route_match:
  922. class: Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
  923. public: false
  924. argument_resolver.default:
  925. class: Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
  926. public: false
  927. http_middleware.content_length:
  928. class: Drupal\Core\StackMiddleware\ContentLength
  929. tags:
  930. # Must run before the page_cache and big_pipe middleware.
  931. - { name: http_middleware, priority: 140 }
  932. http_middleware.ajax_page_state:
  933. class: Drupal\Core\StackMiddleware\AjaxPageState
  934. tags:
  935. - { name: http_middleware, priority: 500 }
  936. http_middleware.negotiation:
  937. class: Drupal\Core\StackMiddleware\NegotiationMiddleware
  938. tags:
  939. - { name: http_middleware, priority: 400 }
  940. http_middleware.reverse_proxy:
  941. class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
  942. arguments: ['@settings']
  943. tags:
  944. - { name: http_middleware, priority: 300 }
  945. http_middleware.kernel_pre_handle:
  946. class: Drupal\Core\StackMiddleware\KernelPreHandle
  947. arguments: ['@kernel']
  948. tags:
  949. - { name: http_middleware, priority: 100 }
  950. http_middleware.session:
  951. class: Drupal\Core\StackMiddleware\Session
  952. autowire: true
  953. tags:
  954. - { name: http_middleware, priority: 50 }
  955. http_middleware.cors:
  956. class: Asm89\Stack\Cors
  957. arguments: ['%cors.config%']
  958. tags:
  959. - { name: http_middleware, priority: 250 }
  960. psr7.http_foundation_factory:
  961. class: Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory
  962. Symfony\Bridge\PsrHttpMessage\HttpFoundationFactoryInterface: '@psr7.http_foundation_factory'
  963. psr17.server_request_factory:
  964. class: GuzzleHttp\Psr7\HttpFactory
  965. public: false
  966. Psr\Http\Message\ServerRequestFactoryInterface: '@psr17.server_request_factory'
  967. psr17.stream_factory:
  968. class: GuzzleHttp\Psr7\HttpFactory
  969. public: false
  970. Psr\Http\Message\StreamFactoryInterface: '@psr17.stream_factory'
  971. psr17.uploaded_file_factory:
  972. class: GuzzleHttp\Psr7\HttpFactory
  973. public: false
  974. Psr\Http\Message\UploadedFileFactoryInterface: '@psr17.uploaded_file_factory'
  975. psr17.response_factory:
  976. class: GuzzleHttp\Psr7\HttpFactory
  977. public: false
  978. Psr\Http\Message\ResponseFactoryInterface: '@psr17.response_factory'
  979. psr7.http_message_factory:
  980. class: Symfony\Bridge\PsrHttpMessage\Factory\PsrHttpFactory
  981. arguments: ['@psr17.server_request_factory', '@psr17.stream_factory', '@psr17.uploaded_file_factory', '@psr17.response_factory']
  982. Symfony\Bridge\PsrHttpMessage\HttpMessageFactoryInterface: '@psr7.http_message_factory'
  983. language_manager:
  984. class: Drupal\Core\Language\LanguageManager
  985. arguments: ['@language.default']
  986. Drupal\Core\Language\LanguageManagerInterface: '@language_manager'
  987. language.current_language_context:
  988. class: Drupal\Core\Language\ContextProvider\CurrentLanguageContext
  989. arguments: ['@language_manager']
  990. tags:
  991. - { name: 'context_provider' }
  992. language.default:
  993. class: Drupal\Core\Language\LanguageDefault
  994. arguments: ['%language.default_values%']
  995. Drupal\Core\Language\LanguageDefault: '@language.default'
  996. string_translator.custom_strings:
  997. class: Drupal\Core\StringTranslation\Translator\CustomStrings
  998. arguments: ['@settings']
  999. tags:
  1000. - { name: string_translator, priority: 30 }
  1001. string_translation:
  1002. class: Drupal\Core\StringTranslation\TranslationManager
  1003. arguments: ['@language.default']
  1004. tags:
  1005. - { name: service_collector, tag: string_translator, call: addTranslator }
  1006. Drupal\Core\StringTranslation\TranslationInterface: '@string_translation'
  1007. typed_data_manager:
  1008. class: Drupal\Core\TypedData\TypedDataManager
  1009. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@class_resolver']
  1010. calls:
  1011. - [setValidationConstraintManager, ['@validation.constraint']]
  1012. tags:
  1013. - { name: plugin_manager_cache_clear }
  1014. Drupal\Core\TypedData\TypedDataManagerInterface: '@typed_data_manager'
  1015. validation.constraint:
  1016. class: Drupal\Core\Validation\ConstraintManager
  1017. parent: default_plugin_manager
  1018. tags:
  1019. - { name: plugin_manager_cache_clear }
  1020. validation.basic_recursive_validator_factory:
  1021. class: Drupal\Core\Validation\BasicRecursiveValidatorFactory
  1022. arguments: ['@class_resolver']
  1023. Drupal\Core\Validation\BasicRecursiveValidatorFactory: '@validation.basic_recursive_validator_factory'
  1024. lock:
  1025. class: Drupal\Core\Lock\DatabaseLockBackend
  1026. arguments: ['@database']
  1027. tags:
  1028. - { name: backend_overridable }
  1029. lazy: true
  1030. lock.persistent:
  1031. class: Drupal\Core\Lock\PersistentDatabaseLockBackend
  1032. arguments: ['@database']
  1033. tags:
  1034. - { name: backend_overridable }
  1035. lazy: true
  1036. router.request_context:
  1037. class: Drupal\Core\Routing\RequestContext
  1038. tags:
  1039. - { name: persist }
  1040. calls:
  1041. - [fromRequestStack, ['@request_stack']]
  1042. Drupal\Core\Routing\RequestContext: '@router.request_context'
  1043. router.admin_context:
  1044. class: Drupal\Core\Routing\AdminContext
  1045. arguments: ['@current_route_match']
  1046. Drupal\Core\Routing\AdminContext: '@router.admin_context'
  1047. router.route_provider:
  1048. class: Drupal\Core\Routing\RouteProvider
  1049. arguments: ['@database', '@state', '@path.current', '@cache.data', '@path_processor_manager', '@cache_tags.invalidator', 'router', '@language_manager']
  1050. tags:
  1051. - { name: backend_overridable }
  1052. Drupal\Core\Routing\RouteProviderInterface: '@router.route_provider'
  1053. router.route_provider.lazy_builder:
  1054. class: Drupal\Core\Routing\RouteProviderLazyBuilder
  1055. arguments: ['@router.route_provider', '@router.builder']
  1056. router.route_preloader:
  1057. class: Drupal\Core\Routing\RoutePreloader
  1058. arguments: ['@router.route_provider', '@state']
  1059. url_generator.non_bubbling:
  1060. class: Drupal\Core\Routing\UrlGenerator
  1061. arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@request_stack', '%filter_protocols%']
  1062. public: false
  1063. calls:
  1064. - [setContext, ['@?router.request_context']]
  1065. url_generator:
  1066. class: Drupal\Core\Render\MetadataBubblingUrlGenerator
  1067. arguments: ['@url_generator.non_bubbling', '@renderer']
  1068. calls:
  1069. - [setContext, ['@?router.request_context']]
  1070. Drupal\Core\Routing\UrlGeneratorInterface: '@url_generator'
  1071. Symfony\Component\Routing\Generator\UrlGeneratorInterface: '@url_generator'
  1072. redirect.destination:
  1073. class: Drupal\Core\Routing\RedirectDestination
  1074. arguments: ['@request_stack', '@url_generator']
  1075. Drupal\Core\Routing\RedirectDestinationInterface: '@redirect.destination'
  1076. unrouted_url_assembler:
  1077. class: Drupal\Core\Utility\UnroutedUrlAssembler
  1078. arguments: ['@request_stack', '@path_processor_manager', '%filter_protocols%']
  1079. Drupal\Core\Utility\UnroutedUrlAssemblerInterface: '@unrouted_url_assembler'
  1080. link_generator:
  1081. class: Drupal\Core\Utility\LinkGenerator
  1082. arguments: ['@url_generator', '@module_handler', '@renderer']
  1083. Drupal\Core\Utility\LinkGeneratorInterface: '@link_generator'
  1084. router:
  1085. class: Drupal\Core\Routing\AccessAwareRouter
  1086. arguments: ['@router.no_access_checks', '@access_manager', '@current_user']
  1087. Drupal\Core\Routing\AccessAwareRouterInterface: '@router'
  1088. router.no_access_checks:
  1089. class: \Drupal\Core\Routing\Router
  1090. arguments: ['@router.route_provider', '@path.current', '@url_generator']
  1091. tags:
  1092. - { name: service_collector, tag: route_enhancer, call: addRouteEnhancer }
  1093. - { name: service_collector, tag: route_filter, call: addRouteFilter }
  1094. calls:
  1095. - [setContext, ['@router.request_context']]
  1096. router.path_roots_subscriber:
  1097. class: Drupal\Core\EventSubscriber\PathRootsSubscriber
  1098. arguments: ['@state']
  1099. entity.query.config:
  1100. class: Drupal\Core\Config\Entity\Query\QueryFactory
  1101. arguments: ['@config.factory', '@keyvalue', '@config.manager']
  1102. entity.query.sql:
  1103. class: Drupal\Core\Entity\Query\Sql\QueryFactory
  1104. arguments: ['@database']
  1105. tags:
  1106. - { name: backend_overridable }
  1107. pgsql.entity.query.sql:
  1108. class: Drupal\Core\Entity\Query\Sql\pgsql\QueryFactory
  1109. arguments: ['@database']
  1110. entity.query.null:
  1111. class: Drupal\Core\Entity\Query\Null\QueryFactory
  1112. entity.query.keyvalue:
  1113. class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
  1114. arguments: ['@keyvalue']
  1115. router.dumper:
  1116. class: Drupal\Core\Routing\MatcherDumper
  1117. arguments: ['@database', '@state', '@logger.channel.router']
  1118. tags:
  1119. - { name: backend_overridable }
  1120. lazy: true
  1121. Drupal\Core\Routing\MatcherDumperInterface: '@router.dumper'
  1122. router.builder:
  1123. class: Drupal\Core\Routing\RouteBuilder
  1124. arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@access_manager.check_provider']
  1125. lazy: true
  1126. tags:
  1127. - { name: needs_destruction }
  1128. Drupal\Core\Routing\RouteBuilderInterface: '@router.builder'
  1129. menu.rebuild_subscriber:
  1130. class: Drupal\Core\EventSubscriber\MenuRouterRebuildSubscriber
  1131. arguments: ['@lock', '@plugin.manager.menu.link', '@database', '@database.replica_kill_switch', '@logger.channel.menu']
  1132. path.matcher:
  1133. class: Drupal\Core\Path\PathMatcher
  1134. arguments: ['@config.factory', '@current_route_match']
  1135. Drupal\Core\Path\PathMatcherInterface: '@path.matcher'
  1136. path.validator:
  1137. class: Drupal\Core\Path\PathValidator
  1138. arguments: ['@router', '@router.no_access_checks', '@current_user', '@path_processor_manager']
  1139. Drupal\Core\Path\PathValidatorInterface: '@path.validator'
  1140. password:
  1141. class: Drupal\Core\Password\PhpPassword
  1142. Drupal\Core\Password\PasswordInterface: '@password'
  1143. password_generator:
  1144. class: Drupal\Core\Password\DefaultPasswordGenerator
  1145. Drupal\Core\Password\PasswordGeneratorInterface: '@password_generator'
  1146. request_format_route_filter:
  1147. class: Drupal\Core\Routing\RequestFormatRouteFilter
  1148. tags:
  1149. - { name: route_filter }
  1150. method_filter:
  1151. class: Drupal\Core\Routing\MethodFilter
  1152. tags:
  1153. # The HTTP method route filter must run very early: it removes any routes
  1154. # whose requirements do not allow the HTTP method of the current request.
  1155. # Throws a 405 if no routes match the current request's HTTP method.
  1156. # (If it runs before content_type_header_matcher, it can ensure that only
  1157. # receives routes which can have a Content-Type request header.)
  1158. - { name: route_filter, priority: 10 }
  1159. content_type_header_matcher:
  1160. class: Drupal\Core\Routing\ContentTypeHeaderMatcher
  1161. tags:
  1162. # The Content-Type request header route filter must run early: it removes
  1163. # any routes whose requirements do not allow the Content-Type request
  1164. # header of the current request.
  1165. # Throws a 415 if no routes match the Content-Type request header of the
  1166. # current request, or if it has no Content-Type request header.
  1167. # Note it does nothing for GET requests.
  1168. - { name: route_filter, priority: 5 }
  1169. paramconverter_manager:
  1170. class: Drupal\Core\ParamConverter\ParamConverterManager
  1171. tags:
  1172. - { name: service_collector, tag: paramconverter, call: addConverter }
  1173. Drupal\Core\ParamConverter\ParamConverterManagerInterface: '@paramconverter_manager'
  1174. paramconverter_subscriber:
  1175. class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
  1176. arguments: ['@paramconverter_manager']
  1177. paramconverter.entity:
  1178. class: Drupal\Core\ParamConverter\EntityConverter
  1179. tags:
  1180. - { name: paramconverter }
  1181. arguments: ['@entity_type.manager', '@entity.repository']
  1182. paramconverter.entity_revision:
  1183. class: Drupal\Core\ParamConverter\EntityRevisionParamConverter
  1184. tags:
  1185. - { name: paramconverter }
  1186. arguments: ['@entity_type.manager', '@entity.repository']
  1187. paramconverter.configentity_admin:
  1188. class: Drupal\Core\ParamConverter\AdminPathConfigEntityConverter
  1189. tags:
  1190. # Use a higher priority than EntityConverter, see the class for details.
  1191. - { name: paramconverter, priority: 5 }
  1192. arguments: ['@entity_type.manager', '@config.factory', '@router.admin_context', '@entity.repository']
  1193. lazy: true
  1194. route_subscriber.module:
  1195. class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
  1196. arguments: ['@module_handler']
  1197. resolver_manager.entity:
  1198. class: Drupal\Core\Entity\EntityResolverManager
  1199. arguments: ['@entity_type.manager', '@class_resolver']
  1200. Drupal\Core\Entity\EntityResolverManager: '@resolver_manager.entity'
  1201. route_subscriber.entity:
  1202. class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
  1203. arguments: ['@resolver_manager.entity']
  1204. ajax_response.subscriber:
  1205. class: Drupal\Core\EventSubscriber\AjaxResponseSubscriber
  1206. autowire: true
  1207. form_ajax_subscriber:
  1208. class: Drupal\Core\Form\EventSubscriber\FormAjaxSubscriber
  1209. arguments: ['@form_ajax_response_builder', '@string_translation', '@messenger']
  1210. route_enhancer.param_conversion:
  1211. class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
  1212. arguments: ['@paramconverter_manager']
  1213. tags:
  1214. - { name: route_enhancer, priority: 5000 }
  1215. route_enhancer.form:
  1216. class: Drupal\Core\Routing\Enhancer\FormRouteEnhancer
  1217. tags:
  1218. - { name: route_enhancer }
  1219. route_enhancer.entity:
  1220. class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
  1221. tags:
  1222. - { name: route_enhancer, priority: 20 }
  1223. route_enhancer.entity_bundle:
  1224. class: Drupal\Core\Entity\Enhancer\EntityBundleRouteEnhancer
  1225. arguments: ['@entity_type.manager']
  1226. tags:
  1227. - { name: route_enhancer }
  1228. route_enhancer.entity_revision:
  1229. class: Drupal\Core\Routing\Enhancer\EntityRevisionRouteEnhancer
  1230. tags:
  1231. - { name: route_enhancer }
  1232. route_special_attributes_subscriber:
  1233. class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
  1234. route_http_method_subscriber:
  1235. class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
  1236. psr_response_view_subscriber:
  1237. class: Drupal\Core\EventSubscriber\PsrResponseSubscriber
  1238. arguments: ['@psr7.http_foundation_factory']
  1239. # Main content view subscriber plus the renderers it uses.
  1240. main_content_view_subscriber:
  1241. class: Drupal\Core\EventSubscriber\MainContentViewSubscriber
  1242. arguments: ['@class_resolver', '@current_route_match', '%main_content_renderers%']
  1243. renderer_non_html:
  1244. class: Drupal\Core\EventSubscriber\RenderArrayNonHtmlSubscriber
  1245. main_content_renderer.html:
  1246. class: Drupal\Core\Render\MainContent\HtmlRenderer
  1247. arguments: ['@title_resolver', '@plugin.manager.display_variant', '@event_dispatcher', '@module_handler', '@renderer', '@render_cache', '%renderer.config%', '@theme.manager']
  1248. tags:
  1249. - { name: render.main_content_renderer, format: html }
  1250. main_content_renderer.ajax:
  1251. class: Drupal\Core\Render\MainContent\AjaxRenderer
  1252. arguments: ['@element_info', '@renderer']
  1253. tags:
  1254. - { name: render.main_content_renderer, format: drupal_ajax }
  1255. - { name: render.main_content_renderer, format: iframeupload }
  1256. main_content_renderer.dialog:
  1257. class: Drupal\Core\Render\MainContent\DialogRenderer
  1258. arguments: ['@title_resolver', '@renderer']
  1259. tags:
  1260. - { name: render.main_content_renderer, format: drupal_dialog }
  1261. main_content_renderer.off_canvas:
  1262. class: Drupal\Core\Render\MainContent\OffCanvasRenderer
  1263. arguments: ['@title_resolver', '@renderer']
  1264. tags:
  1265. - { name: render.main_content_renderer, format: drupal_dialog.off_canvas }
  1266. main_content_renderer.off_canvas_top:
  1267. class: Drupal\Core\Render\MainContent\OffCanvasRenderer
  1268. arguments: ['@title_resolver', '@renderer', 'top']
  1269. tags:
  1270. - { name: render.main_content_renderer, format: drupal_dialog.off_canvas_top }
  1271. main_content_renderer.modal:
  1272. class: Drupal\Core\Render\MainContent\ModalRenderer
  1273. arguments: ['@title_resolver', '@renderer']
  1274. tags:
  1275. - { name: render.main_content_renderer, format: drupal_modal }
  1276. controller.form:
  1277. class: Drupal\Core\Controller\HtmlFormController
  1278. arguments: ['@http_kernel.controller.argument_resolver', '@form_builder', '@class_resolver']
  1279. Drupal\Core\Controller\HtmlFormController: '@controller.form'
  1280. controller.entity_form:
  1281. class: Drupal\Core\Entity\HtmlEntityFormController
  1282. arguments: ['@http_kernel.controller.argument_resolver', '@form_builder', '@entity_type.manager']
  1283. Drupal\Core\Entity\HtmlEntityFormController: '@controller.entity_form'
  1284. form_ajax_response_builder:
  1285. class: Drupal\Core\Form\FormAjaxResponseBuilder
  1286. arguments: ['@main_content_renderer.ajax', '@current_route_match']
  1287. Drupal\Core\Form\FormAjaxResponseBuilderInterface: '@form_ajax_response_builder'
  1288. router_listener:
  1289. class: Symfony\Component\HttpKernel\EventListener\RouterListener
  1290. arguments: ['@router', '@request_stack', '@router.request_context', NULL]
  1291. options_request_listener:
  1292. class: Drupal\Core\EventSubscriber\OptionsRequestSubscriber
  1293. arguments: ['@router.route_provider']
  1294. bare_html_page_renderer:
  1295. class: Drupal\Core\Render\BareHtmlPageRenderer
  1296. arguments: ['@renderer', '@html_response.attachments_processor']
  1297. lazy: true
  1298. Drupal\Core\Render\BareHtmlPageRendererInterface: '@bare_html_page_renderer'
  1299. private_key:
  1300. class: Drupal\Core\PrivateKey
  1301. arguments: ['@state']
  1302. Drupal\Core\PrivateKey: '@private_key'
  1303. csrf_token:
  1304. class: Drupal\Core\Access\CsrfTokenGenerator
  1305. arguments: ['@private_key', '@session_manager.metadata_bag']
  1306. Drupal\Core\Access\CsrfTokenGenerator: '@csrf_token'
  1307. access_arguments_resolver_factory:
  1308. class: Drupal\Core\Access\AccessArgumentsResolverFactory
  1309. Drupal\Core\Access\AccessArgumentsResolverFactoryInterface: '@access_arguments_resolver_factory'
  1310. access_manager:
  1311. class: Drupal\Core\Access\AccessManager
  1312. arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user', '@access_manager.check_provider']
  1313. Drupal\Core\Access\AccessManagerInterface: '@access_manager'
  1314. access_manager.check_provider:
  1315. class: Drupal\Core\Access\CheckProvider
  1316. arguments: ['%dynamic_access_check_services%']
  1317. public: false
  1318. Drupal\Core\Access\CheckProviderInterface: '@access_manager.check_provider'
  1319. access_check.default:
  1320. class: Drupal\Core\Access\DefaultAccessCheck
  1321. tags:
  1322. - { name: access_check, applies_to: _access }
  1323. access_check.entity:
  1324. class: Drupal\Core\Entity\EntityAccessCheck
  1325. tags:
  1326. - { name: access_check, applies_to: _entity_access }
  1327. access_check.entity_create:
  1328. class: Drupal\Core\Entity\EntityCreateAccessCheck
  1329. arguments: ['@entity_type.manager']
  1330. tags:
  1331. - { name: access_check, applies_to: _entity_create_access }
  1332. access_check.entity_create_any:
  1333. class: Drupal\Core\Entity\EntityCreateAnyAccessCheck
  1334. arguments: ['@entity_type.manager', '@entity_type.bundle.info']
  1335. tags:
  1336. - { name: access_check, applies_to: _entity_create_any_access }
  1337. access_check.entity_delete_multiple:
  1338. class: Drupal\Core\Entity\EntityDeleteMultipleAccessCheck
  1339. arguments: ['@entity_type.manager', '@tempstore.private', '@request_stack']
  1340. tags:
  1341. - { name: access_check, applies_to: _entity_delete_multiple_access }
  1342. access_check.theme:
  1343. class: Drupal\Core\Theme\ThemeAccessCheck
  1344. arguments: ['@theme_handler']
  1345. tags:
  1346. - { name: access_check, applies_to: _access_theme }
  1347. access_check.custom:
  1348. class: Drupal\Core\Access\CustomAccessCheck
  1349. arguments: ['@callable_resolver', '@access_arguments_resolver_factory']
  1350. tags:
  1351. - { name: access_check, applies_to: _custom_access }
  1352. access_check.csrf:
  1353. class: Drupal\Core\Access\CsrfAccessCheck
  1354. tags:
  1355. - { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
  1356. arguments: ['@csrf_token']
  1357. access_check.header.csrf:
  1358. class: Drupal\Core\Access\CsrfRequestHeaderAccessCheck
  1359. arguments: ['@session_configuration', '@csrf_token']
  1360. tags:
  1361. - { name: access_check, needs_incoming_request: TRUE }
  1362. maintenance_mode:
  1363. class: Drupal\Core\Site\MaintenanceMode
  1364. arguments: ['@state', '@config.factory']
  1365. Drupal\Core\Site\MaintenanceModeInterface: '@maintenance_mode'
  1366. maintenance_mode_subscriber:
  1367. class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
  1368. arguments: ['@maintenance_mode', '@config.factory', '@string_translation', '@url_generator', '@current_user', '@bare_html_page_renderer', '@messenger', '@event_dispatcher']
  1369. route_access_response_subscriber:
  1370. class: Drupal\Core\EventSubscriber\RouteAccessResponseSubscriber
  1371. client_error_response_subscriber:
  1372. class: Drupal\Core\EventSubscriber\ClientErrorResponseSubscriber
  1373. anonymous_user_response_subscriber:
  1374. class: Drupal\Core\EventSubscriber\AnonymousUserResponseSubscriber
  1375. arguments: ['@current_user']
  1376. ajax_response.attachments_processor:
  1377. class: Drupal\Core\Ajax\AjaxResponseAttachmentsProcessor
  1378. arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler', '@language_manager']
  1379. html_response.attachments_processor:
  1380. class: Drupal\Core\Render\HtmlResponseAttachmentsProcessor
  1381. arguments: ['@asset.resolver', '@config.factory', '@asset.css.collection_renderer', '@asset.js.collection_renderer', '@request_stack', '@renderer', '@module_handler', '@language_manager']
  1382. html_response.subscriber:
  1383. class: Drupal\Core\EventSubscriber\HtmlResponseSubscriber
  1384. arguments: ['@html_response.attachments_processor']
  1385. finish_response_subscriber:
  1386. class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
  1387. arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy', '@cache_contexts_manager', '@datetime.time', '%http.response.debug_cacheability_headers%']
  1388. response_generator_subscriber:
  1389. class: Drupal\Core\EventSubscriber\ResponseGeneratorSubscriber
  1390. redirect_response_subscriber:
  1391. class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
  1392. autowire: true
  1393. redirect_leading_slashes_subscriber:
  1394. class: Drupal\Core\EventSubscriber\RedirectLeadingSlashesSubscriber
  1395. config_import_subscriber:
  1396. class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
  1397. autowire: true
  1398. config_snapshot_subscriber:
  1399. class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
  1400. arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
  1401. config_exclude_modules_subscriber:
  1402. class: Drupal\Core\EventSubscriber\ExcludedModulesEventSubscriber
  1403. arguments: ['@config.storage', '@settings', '@config.manager']
  1404. exception.needs_installer:
  1405. class: Drupal\Core\EventSubscriber\ExceptionDetectNeedsInstallSubscriber
  1406. arguments: ['@database']
  1407. exception.default_json:
  1408. class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
  1409. exception.default_html:
  1410. class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
  1411. arguments: ['@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks']
  1412. exception.final:
  1413. class: Drupal\Core\EventSubscriber\FinalExceptionSubscriber
  1414. arguments: ['@config.factory']
  1415. exception.logger:
  1416. class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
  1417. arguments: ['@logger.factory']
  1418. exception.custom_page_html:
  1419. class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
  1420. arguments: ['@config.factory', '@http_kernel', '@logger.channel.php', '@redirect.destination', '@router.no_access_checks', '@access_manager']
  1421. exception.fast_404_html:
  1422. class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
  1423. arguments: ['@config.factory', '@cache_tags.invalidator']
  1424. exception.enforced_form_response:
  1425. class: Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber
  1426. route_processor_manager:
  1427. class: Drupal\Core\RouteProcessor\RouteProcessorManager
  1428. tags:
  1429. - { name: service_collector, tag: route_processor_outbound, call: addOutbound }
  1430. Drupal\Core\RouteProcessor\OutboundRouteProcessorInterface: '@route_processor_manager'
  1431. path_processor_manager:
  1432. class: Drupal\Core\PathProcessor\PathProcessorManager
  1433. tags:
  1434. - { name: service_collector, tag: path_processor_inbound, call: addInbound }
  1435. - { name: service_collector, tag: path_processor_outbound, call: addOutbound }
  1436. Drupal\Core\PathProcessor\InboundPathProcessorInterface: '@path_processor_manager'
  1437. Drupal\Core\PathProcessor\OutboundPathProcessorInterface: '@path_processor_manager'
  1438. path_processor_decode:
  1439. class: Drupal\Core\PathProcessor\PathProcessorDecode
  1440. tags:
  1441. - { name: path_processor_inbound, priority: 1000 }
  1442. path_processor_front:
  1443. class: Drupal\Core\PathProcessor\PathProcessorFront
  1444. tags:
  1445. - { name: path_processor_inbound, priority: 200 }
  1446. arguments: ['@config.factory']
  1447. route_processor_current:
  1448. class: Drupal\Core\RouteProcessor\RouteProcessorCurrent
  1449. arguments: ['@current_route_match']
  1450. tags:
  1451. - { name: route_processor_outbound, priority: 200 }
  1452. route_processor_csrf:
  1453. class: Drupal\Core\Access\RouteProcessorCsrf
  1454. tags:
  1455. - { name: route_processor_outbound }
  1456. arguments: ['@csrf_token']
  1457. transliteration:
  1458. class: Drupal\Core\Transliteration\PhpTransliteration
  1459. arguments: [null, '@module_handler']
  1460. flood:
  1461. class: Drupal\Core\Flood\DatabaseBackend
  1462. arguments: ['@database', '@request_stack', '@datetime.time']
  1463. tags:
  1464. - { name: backend_overridable }
  1465. Drupal\Core\Flood\FloodInterface: '@flood'
  1466. plugin.manager.mail:
  1467. class: Drupal\Core\Mail\MailManager
  1468. arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation', '@renderer']
  1469. Drupal\Core\Mail\MailManagerInterface: '@plugin.manager.mail'
  1470. plugin.manager.condition:
  1471. class: Drupal\Core\Condition\ConditionManager
  1472. parent: default_plugin_manager
  1473. Drupal\Core\Executable\ExecutableManagerInterface: '@plugin.manager.condition'
  1474. plugin.manager.element_info:
  1475. class: Drupal\Core\Render\ElementInfoManager
  1476. arguments: ['@container.namespaces', '@cache.discovery', '@theme_handler', '@module_handler', '@theme.manager']
  1477. Drupal\Core\Render\ElementInfoManagerInterface: '@plugin.manager.element_info'
  1478. stream_wrapper_manager:
  1479. class: Drupal\Core\StreamWrapper\StreamWrapperManager
  1480. Drupal\Core\StreamWrapper\StreamWrapperManagerInterface: '@stream_wrapper_manager'
  1481. stream_wrapper.assets:
  1482. class: Drupal\Core\StreamWrapper\AssetsStream
  1483. tags:
  1484. - { name: stream_wrapper, scheme: assets }
  1485. Drupal\Core\StreamWrapper\AssetsStream: '@stream_wrapper.assets'
  1486. stream_wrapper.public:
  1487. class: Drupal\Core\StreamWrapper\PublicStream
  1488. tags:
  1489. - { name: stream_wrapper, scheme: public }
  1490. stream_wrapper.temporary:
  1491. class: Drupal\Core\StreamWrapper\TemporaryStream
  1492. tags:
  1493. - { name: stream_wrapper, scheme: temporary }
  1494. image.toolkit.manager:
  1495. class: Drupal\Core\ImageToolkit\ImageToolkitManager
  1496. arguments: ['@config.factory']
  1497. parent: default_plugin_manager
  1498. tags:
  1499. - { name: plugin_manager_cache_clear }
  1500. Drupal\Core\ImageToolkit\ImageToolkitManager: '@image.toolkit.manager'
  1501. image.toolkit.operation.manager:
  1502. class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
  1503. arguments: ['@logger.channel.image', '@image.toolkit.manager']
  1504. parent: default_plugin_manager
  1505. tags:
  1506. - { name: plugin_manager_cache_clear }
  1507. Drupal\Core\ImageToolkit\ImageToolkitOperationManagerInterface: '@image.toolkit.operation.manager'
  1508. image.factory:
  1509. class: Drupal\Core\Image\ImageFactory
  1510. arguments: ['@image.toolkit.manager']
  1511. Drupal\Core\Image\ImageFactory: '@image.factory'
  1512. breadcrumb:
  1513. class: Drupal\Core\Breadcrumb\BreadcrumbManager
  1514. arguments: ['@module_handler']
  1515. tags:
  1516. - { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
  1517. Drupal\Core\Breadcrumb\ChainBreadcrumbBuilderInterface: '@breadcrumb'
  1518. token:
  1519. class: Drupal\Core\Utility\Token
  1520. arguments: ['@module_handler', '@cache.default', '@language_manager', '@cache_tags.invalidator', '@renderer']
  1521. Drupal\Core\Utility\Token: '@token'
  1522. batch.storage:
  1523. class: Drupal\Core\Batch\BatchStorage
  1524. arguments: ['@database', '@session', '@csrf_token', '@datetime.time']
  1525. tags:
  1526. - { name: backend_overridable }
  1527. lazy: true
  1528. Drupal\Core\Batch\BatchStorageInterface: '@batch.storage'
  1529. country_manager:
  1530. class: Drupal\Core\Locale\CountryManager
  1531. arguments: ['@module_handler']
  1532. Drupal\Core\Locale\CountryManagerInterface: '@country_manager'
  1533. date.formatter:
  1534. class: Drupal\Core\Datetime\DateFormatter
  1535. arguments: ['@entity_type.manager', '@language_manager', '@string_translation', '@config.factory', '@request_stack']
  1536. Drupal\Core\Datetime\DateFormatterInterface: '@date.formatter'
  1537. theme.manager:
  1538. class: Drupal\Core\Theme\ThemeManager
  1539. arguments: ['%app.root%', '@theme.negotiator', '@theme.initialization', '@module_handler']
  1540. calls:
  1541. - [setThemeRegistry, ['@theme.registry']]
  1542. Drupal\Core\Theme\ThemeManagerInterface: '@theme.manager'
  1543. theme.initialization:
  1544. class: Drupal\Core\Theme\ThemeInitialization
  1545. arguments: ['%app.root%', '@theme_handler', '@cache.bootstrap', '@module_handler']
  1546. Drupal\Core\Theme\ThemeInitializationInterface: '@theme.initialization'
  1547. theme.registry:
  1548. class: Drupal\Core\Theme\Registry
  1549. arguments: ['%app.root%', '@cache.default', '@lock', '@module_handler', '@theme_handler', '@theme.initialization', '@cache.bootstrap', '@extension.list.module', '@kernel']
  1550. tags:
  1551. - { name: needs_destruction }
  1552. calls:
  1553. - [setThemeManager, ['@theme.manager']]
  1554. Drupal\Core\Theme\Registry: '@theme.registry'
  1555. authentication:
  1556. class: Drupal\Core\Authentication\AuthenticationManager
  1557. arguments: ['@authentication_collector']
  1558. Drupal\Core\Authentication\AuthenticationProviderInterface: '@authentication'
  1559. authentication_collector:
  1560. class: Drupal\Core\Authentication\AuthenticationCollector
  1561. tags:
  1562. - { name: service_collector, tag: authentication_provider, call: addProvider }
  1563. Drupal\Core\Authentication\AuthenticationCollectorInterface: '@authentication_collector'
  1564. authentication_subscriber:
  1565. class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
  1566. arguments: ['@authentication', '@current_user']
  1567. account_switcher:
  1568. class: Drupal\Core\Session\AccountSwitcher
  1569. arguments: ['@current_user', '@session_handler.write_safe']
  1570. Drupal\Core\Session\AccountSwitcherInterface: '@account_switcher'
  1571. access_policy_processor:
  1572. class: Drupal\Core\Session\AccessPolicyProcessor
  1573. arguments: ['@variation_cache.access_policy', '@variation_cache.access_policy_memory', '@cache.access_policy_memory', '@current_user', '@account_switcher']
  1574. tags:
  1575. - { name: service_collector, call: addAccessPolicy, tag: access_policy }
  1576. Drupal\Core\Session\AccessPolicyChainInterface: '@access_policy_processor'
  1577. access_policy.super_user:
  1578. class: Drupal\Core\Session\SuperUserAccessPolicy
  1579. tags:
  1580. - { name: access_policy }
  1581. Drupal\Core\Session\SuperUserAccessPolicy: '@access_policy.super_user'
  1582. access_policy.user_roles:
  1583. class: Drupal\Core\Session\UserRolesAccessPolicy
  1584. arguments: ['@entity_type.manager']
  1585. tags:
  1586. - { name: access_policy }
  1587. Drupal\Core\Session\UserRolesAccessPolicy: '@access_policy.user_roles'
  1588. permission_checker:
  1589. class: Drupal\Core\Session\PermissionChecker
  1590. arguments: ['@access_policy_processor']
  1591. Drupal\Core\Session\PermissionCheckerInterface: '@permission_checker'
  1592. user_permissions_hash_generator:
  1593. class: Drupal\Core\Session\PermissionsHashGenerator
  1594. arguments: ['@private_key', '@cache.static', '@access_policy_processor']
  1595. Drupal\Core\Session\PermissionsHashGeneratorInterface: '@user_permissions_hash_generator'
  1596. current_user:
  1597. class: Drupal\Core\Session\AccountProxy
  1598. arguments: ['@event_dispatcher']
  1599. Drupal\Core\Session\AccountInterface: '@current_user'
  1600. Drupal\Core\Session\AccountProxyInterface: '@current_user'
  1601. session_configuration:
  1602. class: Drupal\Core\Session\SessionConfiguration
  1603. arguments: ['%session.storage.options%']
  1604. Drupal\Core\Session\SessionConfigurationInterface: '@session_configuration'
  1605. session:
  1606. class: Symfony\Component\HttpFoundation\Session\Session
  1607. arguments: ['@session_manager', '@session.attribute_bag', '@session.flash_bag']
  1608. tags:
  1609. - { name: service_collector, tag: session_bag, call: registerBag }
  1610. Symfony\Component\HttpFoundation\Session\SessionInterface: '@session'
  1611. # session.flash_bag has special treatment: it is passed to the session
  1612. # service as an argument. Other services using FlashBag should be tagged
  1613. # with the session_bag tag, so that they will persist across page loads.
  1614. session.flash_bag:
  1615. class: Symfony\Component\HttpFoundation\Session\Flash\FlashBag
  1616. public: false
  1617. Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface: '@session.flash_bag'
  1618. session.attribute_bag:
  1619. class: Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag
  1620. public: false
  1621. Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface: '@session.attribute_bag'
  1622. session_handler:
  1623. alias: session_handler.storage
  1624. session_handler.storage:
  1625. class: Drupal\Core\Session\SessionHandler
  1626. arguments: ['@request_stack', '@database', '@datetime.time']
  1627. tags:
  1628. - { name: backend_overridable }
  1629. session_handler.write_safe:
  1630. class: Drupal\Core\Session\WriteSafeSessionHandler
  1631. tags:
  1632. - { name: session_handler_proxy, priority: 150 }
  1633. Drupal\Core\Session\WriteSafeSessionHandlerInterface: '@session_handler.write_safe'
  1634. session_manager:
  1635. class: Drupal\Core\Session\SessionManager
  1636. arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@session_configuration', '@datetime.time', '@session_handler']
  1637. tags:
  1638. - { name: backend_overridable }
  1639. calls:
  1640. - [setWriteSafeHandler, ['@session_handler.write_safe']]
  1641. Drupal\Core\Session\SessionManagerInterface: '@session_manager'
  1642. session_manager.metadata_bag:
  1643. class: Drupal\Core\Session\MetadataBag
  1644. arguments: ['@settings']
  1645. Drupal\Core\Session\MetadataBag: '@session_manager.metadata_bag'
  1646. asset.css.collection_renderer:
  1647. class: Drupal\Core\Asset\CssCollectionRenderer
  1648. arguments: [ '@asset.query_string', '@file_url_generator' ]
  1649. asset.css.collection_optimizer:
  1650. class: Drupal\Core\Asset\CssCollectionOptimizerLazy
  1651. 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']
  1652. asset.css.optimizer:
  1653. class: Drupal\Core\Asset\CssOptimizer
  1654. arguments: ['@file_url_generator']
  1655. asset.css.collection_grouper:
  1656. class: Drupal\Core\Asset\CssCollectionGrouper
  1657. asset.css.dumper:
  1658. class: Drupal\Core\Asset\AssetDumper
  1659. arguments: ['@file_system']
  1660. asset.js.collection_renderer:
  1661. class: Drupal\Core\Asset\JsCollectionRenderer
  1662. arguments: [ '@asset.query_string','@file_url_generator', '@datetime.time' ]
  1663. asset.js.collection_optimizer:
  1664. class: Drupal\Core\Asset\JsCollectionOptimizerLazy
  1665. 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']
  1666. asset.js.optimizer:
  1667. class: Drupal\Core\Asset\JsOptimizer
  1668. arguments: ['@logger.channel.default']
  1669. asset.js.collection_grouper:
  1670. class: Drupal\Core\Asset\JsCollectionGrouper
  1671. asset.js.dumper:
  1672. class: Drupal\Core\Asset\AssetDumper
  1673. arguments: ['@file_system']
  1674. library.discovery:
  1675. class: Drupal\Core\Asset\LibraryDiscoveryCollector
  1676. arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
  1677. tags:
  1678. - { name: needs_destruction }
  1679. Drupal\Core\Asset\LibraryDiscoveryInterface: '@library.discovery'
  1680. library.discovery.collector:
  1681. arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
  1682. class: Drupal\Core\Asset\LibraryDiscoveryCollector
  1683. deprecated: The "%service_id%" service is deprecated in drupal:11.1.0 and is removed from drupal:12.0.0. Use LibraryDiscovery instead. See https://www.drupal.org/node/3462970
  1684. library.discovery.parser:
  1685. class: Drupal\Core\Asset\LibraryDiscoveryParser
  1686. arguments: ['%app.root%', '@module_handler', '@theme.manager', '@stream_wrapper_manager', '@library.libraries_directory_file_finder', '@extension.path.resolver', '@plugin.manager.sdc']
  1687. Drupal\Core\Asset\LibraryDiscoveryParser: '@library.discovery.parser'
  1688. library.libraries_directory_file_finder:
  1689. class: Drupal\Core\Asset\LibrariesDirectoryFileFinder
  1690. arguments: ['%app.root%', '%site.path%', '@extension.list.profile', '%install_profile%']
  1691. Drupal\Core\Asset\LibrariesDirectoryFileFinder: '@library.libraries_directory_file_finder'
  1692. library.dependency_resolver:
  1693. class: Drupal\Core\Asset\LibraryDependencyResolver
  1694. arguments: ['@library.discovery']
  1695. Drupal\Core\Asset\LibraryDependencyResolverInterface: '@library.dependency_resolver'
  1696. asset.resolver:
  1697. class: Drupal\Core\Asset\AssetResolver
  1698. arguments: ['@library.discovery', '@library.dependency_resolver', '@module_handler', '@theme.manager', '@language_manager', '@cache.data', '@theme_handler']
  1699. Drupal\Core\Asset\AssetResolverInterface: '@asset.resolver'
  1700. info_parser:
  1701. class: Drupal\Core\Extension\InfoParser
  1702. arguments: ['%app.root%']
  1703. Drupal\Core\Extension\InfoParserInterface: '@info_parser'
  1704. twig:
  1705. class: Drupal\Core\Template\TwigEnvironment
  1706. arguments: ['%app.root%', '@cache.default', '%twig_extension_hash%', '@state', '@twig.loader', '%twig.config%']
  1707. tags:
  1708. - { name: service_collector, tag: 'twig.extension', call: addExtension }
  1709. Drupal\Core\Template\TwigEnvironment: '@twig'
  1710. twig.extension:
  1711. class: Drupal\Core\Template\TwigExtension
  1712. arguments: ['@renderer', '@url_generator', '@theme.manager', '@date.formatter', '@file_url_generator']
  1713. tags:
  1714. - { name: twig.extension, priority: 100 }
  1715. Drupal\Core\Template\ComponentsTwigExtension:
  1716. arguments: ['@plugin.manager.sdc', '@Drupal\Core\Theme\Component\ComponentValidator']
  1717. tags:
  1718. - { name: twig.extension, priority: 101 }
  1719. twig.extension.debug:
  1720. class: Twig\Extension\DebugExtension
  1721. tags:
  1722. - { name: twig.extension, priority: 50 }
  1723. twig.extension.varDumper:
  1724. class: Drupal\Core\Template\DebugExtension
  1725. tags:
  1726. # This extension is loaded after the Twig Debug Extension because for Twig
  1727. # Extensions, last extension loaded takes precedent. This allows this
  1728. # extension to override the default Twig Debug Extension conditionally
  1729. # when Symfony VarDumper is available.
  1730. - { name: twig.extension, priority: 25 }
  1731. twig.loader:
  1732. class: Twig\Loader\ChainLoader
  1733. public: false
  1734. tags:
  1735. - { name: service_collector, tag: twig.loader, call: addLoader, required: TRUE }
  1736. Twig\Loader\LoaderInterface: '@twig.loader'
  1737. twig.loader.filesystem:
  1738. class: Drupal\Core\Template\Loader\FilesystemLoader
  1739. # We use '.' instead of '%app.root%' as the path for non-namespaced template
  1740. # files so that they match the relative paths of templates loaded via the
  1741. # theme registry or via Twig namespaces.
  1742. arguments: ['.', '@module_handler', '@theme_handler', '%twig.config%']
  1743. tags:
  1744. - { name: twig.loader, priority: 100 }
  1745. twig.loader.theme_registry:
  1746. class: Drupal\Core\Template\Loader\ThemeRegistryLoader
  1747. arguments: ['@theme.registry']
  1748. tags:
  1749. - { name: twig.loader, priority: 0 }
  1750. twig.loader.string:
  1751. class: Drupal\Core\Template\Loader\StringLoader
  1752. tags:
  1753. - { name: twig.loader, priority: -100 }
  1754. element_info:
  1755. alias: plugin.manager.element_info
  1756. file.htaccess_writer:
  1757. class: Drupal\Core\File\HtaccessWriter
  1758. arguments: ['@logger.channel.security', '@stream_wrapper_manager']
  1759. Drupal\Core\File\HtaccessWriterInterface: '@file.htaccess_writer'
  1760. file.mime_type.guesser:
  1761. class: Drupal\Core\File\MimeType\MimeTypeGuesser
  1762. arguments: ['@stream_wrapper_manager']
  1763. tags:
  1764. - { name: service_collector, tag: mime_type_guesser, call: addMimeTypeGuesser }
  1765. lazy: true
  1766. file.mime_type.guesser.extension:
  1767. class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
  1768. arguments: ['@module_handler']
  1769. tags:
  1770. - { name: mime_type_guesser }
  1771. lazy: true
  1772. # Currently needs to be public as it is called by
  1773. # \Drupal\Core\Render\Element\StatusMessages.
  1774. # @todo Consider making this service private again after
  1775. # https://www.drupal.org/node/2367555 lands.
  1776. render_placeholder_generator:
  1777. class: Drupal\Core\Render\PlaceholderGenerator
  1778. arguments: ['@cache_contexts_manager', '%renderer.config%']
  1779. Drupal\Core\Render\PlaceholderGeneratorInterface: '@render_placeholder_generator'
  1780. render_cache:
  1781. class: Drupal\Core\Render\PlaceholderingRenderCache
  1782. arguments: ['@request_stack', '@variation_cache_factory', '@cache_contexts_manager', '@render_placeholder_generator']
  1783. Drupal\Core\Render\RenderCacheInterface: '@render_cache'
  1784. renderer:
  1785. class: Drupal\Core\Render\Renderer
  1786. arguments: ['@callable_resolver', '@theme.manager', '@plugin.manager.element_info', '@render_placeholder_generator', '@render_cache', '@request_stack', '%renderer.config%']
  1787. Drupal\Core\Render\RendererInterface: '@renderer'
  1788. early_rendering_controller_wrapper_subscriber:
  1789. class: Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber
  1790. arguments: ['@http_kernel.controller.argument_resolver', '@renderer']
  1791. # Placeholder strategies for rendering placeholders.
  1792. html_response.placeholder_strategy_subscriber:
  1793. class: Drupal\Core\EventSubscriber\HtmlResponsePlaceholderStrategySubscriber
  1794. arguments: ['@placeholder_strategy']
  1795. placeholder_strategy:
  1796. class: Drupal\Core\Render\Placeholder\ChainedPlaceholderStrategy
  1797. tags:
  1798. - { name: service_collector, tag: placeholder_strategy, call: addPlaceholderStrategy }
  1799. Drupal\Core\Render\Placeholder\PlaceholderStrategyInterface: '@placeholder_strategy'
  1800. placeholder_strategy.single_flush:
  1801. class: Drupal\Core\Render\Placeholder\SingleFlushStrategy
  1802. tags:
  1803. - { name: placeholder_strategy, priority: -1000 }
  1804. email.validator:
  1805. class: Drupal\Component\Utility\EmailValidator
  1806. Drupal\Component\Utility\EmailValidatorInterface: '@email.validator'
  1807. update.update_hook_registry:
  1808. class: Drupal\Core\Update\UpdateHookRegistry
  1809. arguments: ['%container.modules%', '@keyvalue']
  1810. Drupal\Core\Update\UpdateHookRegistry: '@update.update_hook_registry'
  1811. update.post_update_registry:
  1812. class: Drupal\Core\Update\UpdateRegistry
  1813. arguments: ['%app.root%', '%site.path%', '%container.modules%', '@update.key_value.post_update', '@theme_handler', 'post_update']
  1814. update.key_value.post_update:
  1815. class: Drupal\Core\KeyValueStore\KeyValueStoreInterface
  1816. factory: ['@keyvalue', 'get']
  1817. arguments: ['post_update']
  1818. public: false
  1819. uuid:
  1820. class: Drupal\Component\Uuid\Php
  1821. Drupal\Component\Uuid\UuidInterface: '@uuid'
  1822. response_filter.active_link:
  1823. class: Drupal\Core\EventSubscriber\ActiveLinkResponseFilter
  1824. arguments: ['@current_user', '@path.current', '@path.matcher', '@language_manager']
  1825. response_filter.rss.cdata:
  1826. class: Drupal\Core\EventSubscriber\RssResponseCdata
  1827. response_filter.rss.relative_url:
  1828. class: Drupal\Core\EventSubscriber\RssResponseRelativeUrlFilter
  1829. messenger:
  1830. class: Drupal\Core\Messenger\Messenger
  1831. arguments: ['@session.flash_bag', '@page_cache_kill_switch']
  1832. Drupal\Core\Messenger\MessengerInterface: '@messenger'
  1833. tempstore.private:
  1834. class: Drupal\Core\TempStore\PrivateTempStoreFactory
  1835. arguments: ['@keyvalue.expirable', '@lock', '@current_user', '@request_stack', '%tempstore.expire%']
  1836. tags:
  1837. - { name: backend_overridable }
  1838. Drupal\Core\TempStore\PrivateTempStoreFactory: '@tempstore.private'
  1839. tempstore.shared:
  1840. class: Drupal\Core\TempStore\SharedTempStoreFactory
  1841. arguments: ['@keyvalue.expirable', '@lock', '@request_stack', '@current_user', '%tempstore.expire%']
  1842. tags:
  1843. - { name: backend_overridable }
  1844. Drupal\Core\TempStore\SharedTempStoreFactory: '@tempstore.shared'
  1845. pager.manager:
  1846. class: Drupal\Core\Pager\PagerManager
  1847. arguments: ['@pager.parameters']
  1848. Drupal\Core\Pager\PagerManagerInterface: '@pager.manager'
  1849. pager.parameters:
  1850. class: Drupal\Core\Pager\PagerParameters
  1851. arguments: ['@request_stack']
  1852. Drupal\Core\Pager\PagerParametersInterface: '@pager.parameters'
  1853. Drupal\Core\Theme\Component\SchemaCompatibilityChecker: {}
  1854. Drupal\Core\Theme\Component\ComponentValidator:
  1855. calls:
  1856. - [setValidator, []]
  1857. Drupal\Core\Theme\ComponentNegotiator:
  1858. arguments:
  1859. - '@theme.manager'
  1860. - '@extension.list.module'
  1861. plugin.manager.sdc:
  1862. public: true
  1863. class: Drupal\Core\Theme\ComponentPluginManager
  1864. arguments:
  1865. - '@module_handler'
  1866. - '@theme_handler'
  1867. - '@cache.discovery'
  1868. - '@config.factory'
  1869. - '@theme.manager'
  1870. - '@Drupal\Core\Theme\ComponentNegotiator'
  1871. - '@file_system'
  1872. - '@Drupal\Core\Theme\Component\SchemaCompatibilityChecker'
  1873. - '@Drupal\Core\Theme\Component\ComponentValidator'
  1874. - '%app.root%'
  1875. Drupal\Core\Theme\ComponentPluginManager: '@plugin.manager.sdc'
  1876. Drupal\Core\Template\Loader\ComponentLoader:
  1877. arguments:
  1878. - '@plugin.manager.sdc'
  1879. - '@logger.channel.default'
  1880. tags:
  1881. - { name: twig.loader, priority: 5 }
  1882. Drupal\Core\EventSubscriber\CsrfExceptionSubscriber: ~

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