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

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