core.services.yml

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

Services

Title Deprecated Summary
access_arguments_resolver_factory Drupal\Core\Access\AccessArgumentsResolverFactory
access_check.csrf Drupal\Core\Access\CsrfAccessCheck
access_check.custom Drupal\Core\Access\CustomAccessCheck
access_check.default Drupal\Core\Access\DefaultAccessCheck
access_check.entity Drupal\Core\Entity\EntityAccessCheck
access_check.entity_bundles Drupal\Core\Entity\EntityBundleAccessCheck
access_check.entity_create Drupal\Core\Entity\EntityCreateAccessCheck
access_check.entity_create_any Drupal\Core\Entity\EntityCreateAnyAccessCheck
access_check.entity_delete_multiple Drupal\Core\Entity\EntityDeleteMultipleAccessCheck
access_check.header.csrf Drupal\Core\Access\CsrfRequestHeaderAccessCheck
access_check.theme Drupal\Core\Theme\ThemeAccessCheck
access_manager Drupal\Core\Access\AccessManager
access_manager.check_provider Drupal\Core\Access\CheckProvider
account_switcher Drupal\Core\Session\AccountSwitcher
ajax_response.attachments_processor Drupal\Core\Ajax\AjaxResponseAttachmentsProcessor
ajax_response.subscriber Drupal\Core\EventSubscriber\AjaxResponseSubscriber
anonymous_user_response_subscriber Drupal\Core\EventSubscriber\AnonymousUserResponseSubscriber
app.root SplString
app.root.factory Drupal\Core\AppRootFactory
argument_resolver.default Symfony\Component\HttpKernel\Controller\ArgumentResolver\DefaultValueResolver
argument_resolver.psr7_request Drupal\Core\Controller\ArgumentResolver\Psr7RequestValueResolver
argument_resolver.request Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestValueResolver
argument_resolver.request_attribute Symfony\Component\HttpKernel\Controller\ArgumentResolver\RequestAttributeValueResolver
argument_resolver.route_match Drupal\Core\Controller\ArgumentResolver\RouteMatchValueResolver
asset.css.collection_grouper Drupal\Core\Asset\CssCollectionGrouper
asset.css.collection_optimizer Drupal\Core\Asset\CssCollectionOptimizer
asset.css.collection_renderer Drupal\Core\Asset\CssCollectionRenderer
asset.css.dumper Drupal\Core\Asset\AssetDumper
asset.css.optimizer Drupal\Core\Asset\CssOptimizer
asset.js.collection_grouper Drupal\Core\Asset\JsCollectionGrouper
asset.js.collection_optimizer Drupal\Core\Asset\JsCollectionOptimizer
asset.js.collection_renderer Drupal\Core\Asset\JsCollectionRenderer
asset.js.dumper Drupal\Core\Asset\AssetDumper
asset.js.optimizer Drupal\Core\Asset\JsOptimizer
asset.resolver Drupal\Core\Asset\AssetResolver
authentication Drupal\Core\Authentication\AuthenticationManager
authentication_collector Drupal\Core\Authentication\AuthenticationCollector
authentication_subscriber Drupal\Core\EventSubscriber\AuthenticationSubscriber
bare_html_page_renderer Drupal\Core\Render\BareHtmlPageRenderer
batch.storage Drupal\Core\Batch\BatchStorage
breadcrumb Drupal\Core\Breadcrumb\BreadcrumbManager
cache.backend.apcu Drupal\Core\Cache\ApcuBackendFactory
cache.backend.chainedfast Drupal\Core\Cache\ChainedFastBackendFactory
cache.backend.database Drupal\Core\Cache\DatabaseBackendFactory
cache.backend.memory Drupal\Core\Cache\MemoryBackendFactory
cache.backend.php Drupal\Core\Cache\PhpBackendFactory
cache.bootstrap Drupal\Core\Cache\CacheBackendInterface
cache.config Drupal\Core\Cache\CacheBackendInterface
cache.data Drupal\Core\Cache\CacheBackendInterface
cache.default Drupal\Core\Cache\CacheBackendInterface

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