core.services.yml

Same filename in other branches
  1. 8.9.x core/core.services.yml
  2. 10 core/core.services.yml
  3. 11.x core/core.services.yml
core/core.services.yml

File

core/core.services.yml

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

Services

Title Deprecated Summary
route_enhancer.entity Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
route_enhancer.entity_bundle Drupal\Core\Entity\Enhancer\EntityBundleRouteEnhancer
route_enhancer.entity_revision Drupal\Core\Routing\Enhancer\EntityRevisionRouteEnhancer
route_enhancer.form Drupal\Core\Routing\Enhancer\FormRouteEnhancer
route_enhancer.param_conversion Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
route_http_method_subscriber Drupal\Core\EventSubscriber\RouteMethodSubscriber
route_processor_csrf Drupal\Core\Access\RouteProcessorCsrf
route_processor_current Drupal\Core\RouteProcessor\RouteProcessorCurrent
route_processor_manager Drupal\Core\RouteProcessor\RouteProcessorManager
route_special_attributes_subscriber Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
route_subscriber.entity Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
route_subscriber.module Drupal\Core\EventSubscriber\ModuleRouteSubscriber
serialization.json Drupal\Component\Serialization\Json
serialization.phpserialize Drupal\Component\Serialization\PhpSerialize
serialization.yaml Drupal\Component\Serialization\Yaml
session Symfony\Component\HttpFoundation\Session\Session
session.attribute_bag Symfony\Component\HttpFoundation\Session\Attribute\AttributeBag
session.flash_bag Symfony\Component\HttpFoundation\Session\Flash\FlashBag
session_configuration Drupal\Core\Session\SessionConfiguration
session_handler Alias of session_handler.storage
session_handler.storage Drupal\Core\Session\SessionHandler
session_handler.write_safe Drupal\Core\Session\WriteSafeSessionHandler
session_manager Drupal\Core\Session\SessionManager
session_manager.metadata_bag Drupal\Core\Session\MetadataBag
settings Drupal\Core\Site\Settings
site.path \SplString
site.path.factory Drupal\Core\SitePathFactory
state Drupal\Core\State\State
stream_wrapper.public Drupal\Core\StreamWrapper\PublicStream
stream_wrapper.temporary Drupal\Core\StreamWrapper\TemporaryStream
stream_wrapper_manager Drupal\Core\StreamWrapper\StreamWrapperManager
string_translation Drupal\Core\StringTranslation\TranslationManager
string_translator.custom_strings Drupal\Core\StringTranslation\Translator\CustomStrings
tempstore.private Drupal\Core\TempStore\PrivateTempStoreFactory
tempstore.shared Drupal\Core\TempStore\SharedTempStoreFactory
theme.initialization Drupal\Core\Theme\ThemeInitialization
theme.manager Drupal\Core\Theme\ThemeManager
theme.negotiator Drupal\Core\Theme\ThemeNegotiator
theme.negotiator.ajax_base_page Drupal\Core\Theme\AjaxBasePageNegotiator
theme.negotiator.default Drupal\Core\Theme\DefaultNegotiator
theme.registry Drupal\Core\Theme\Registry
theme_handler Drupal\Core\Extension\ThemeHandler
theme_installer Drupal\Core\Extension\ThemeInstaller
title_resolver Drupal\Core\Controller\TitleResolver
token Drupal\Core\Utility\Token
transliteration Drupal\Core\Transliteration\PhpTransliteration
twig Drupal\Core\Template\TwigEnvironment
twig.extension Drupal\Core\Template\TwigExtension
twig.extension.debug Twig\Extension\DebugExtension
twig.extension.varDumper Drupal\Core\Template\DebugExtension

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