drupal/core/core.services.yml

1056 lines
40 KiB
YAML

parameters:
twig.config: {}
factory.keyvalue:
default: keyvalue.database
factory.keyvalue.expirable:
default: keyvalue.expirable.database
services:
cache_factory:
class: Drupal\Core\Cache\CacheFactory
arguments: ['@settings', '%cache_default_bin_backends%']
calls:
- [setContainer, ['@service_container']]
cache_contexts:
class: Drupal\Core\Cache\CacheContexts
arguments: ['@service_container', '%cache_contexts%' ]
cache_context.url:
class: Drupal\Core\Cache\UrlCacheContext
arguments: ['@request_stack']
tags:
- { name: cache.context}
cache_context.language:
class: Drupal\Core\Cache\LanguageCacheContext
arguments: ['@language_manager']
tags:
- { name: cache.context}
cache_context.theme:
class: Drupal\Core\Cache\ThemeCacheContext
arguments: ['@current_route_match', '@theme.negotiator']
tags:
- { name: cache.context}
cache_context.timezone:
class: Drupal\Core\Cache\TimeZoneCacheContext
tags:
- { name: cache.context}
cache.backend.chainedfast:
class: Drupal\Core\Cache\ChainedFastBackendFactory
arguments: ['@settings']
calls:
- [setContainer, ['@service_container']]
cache.backend.database:
class: Drupal\Core\Cache\DatabaseBackendFactory
arguments: ['@database']
cache.backend.apcu:
class: Drupal\Core\Cache\ApcuBackendFactory
cache.backend.php:
class: Drupal\Core\Cache\PhpBackendFactory
cache.bootstrap:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin, default_backend: cache.backend.chainedfast }
factory_method: get
factory_service: cache_factory
arguments: [bootstrap]
cache.config:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin, default_backend: cache.backend.chainedfast }
factory_method: get
factory_service: cache_factory
arguments: [config]
cache.default:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin }
factory_method: get
factory_service: cache_factory
arguments: [default]
cache.entity:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin }
factory_method: get
factory_service: cache_factory
arguments: [entity]
cache.menu:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin }
factory_method: get
factory_service: cache_factory
arguments: [menu]
cache.render:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin }
factory_method: get
factory_service: cache_factory
arguments: [render]
cache.data:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin }
factory_method: get
factory_service: cache_factory
arguments: [data]
cache.discovery:
class: Drupal\Core\Cache\CacheBackendInterface
tags:
- { name: cache.bin, default_backend: cache.backend.chainedfast }
factory_method: get
factory_service: cache_factory
arguments: [discovery]
page_cache_request_policy:
class: Drupal\Core\PageCache\DefaultRequestPolicy
tags:
- { name: service_collector, tag: page_cache_request_policy, call: addPolicy}
page_cache_response_policy:
class: Drupal\Core\PageCache\ChainResponsePolicy
tags:
- { name: service_collector, tag: page_cache_response_policy, call: addPolicy}
page_cache_kill_switch:
class: Drupal\Core\PageCache\ResponsePolicy\KillSwitch
tags:
- { name: page_cache_response_policy }
config.manager:
class: Drupal\Core\Config\ConfigManager
arguments: ['@entity.manager', '@config.factory', '@config.typed', '@string_translation', '@config.storage', '@event_dispatcher']
config.factory:
class: Drupal\Core\Config\ConfigFactory
tags:
- { name: event_subscriber }
- { name: service_collector, tag: 'config.factory.override', call: addOverride }
arguments: ['@config.storage', '@event_dispatcher', '@config.typed']
config.installer:
class: Drupal\Core\Config\ConfigInstaller
arguments: ['@config.factory', '@config.storage', '@config.typed', '@config.manager', '@event_dispatcher']
config.storage:
class: Drupal\Core\Config\CachedStorage
arguments: ['@config.storage.active', '@cache.config']
config.storage.active:
class: Drupal\Core\Config\DatabaseStorage
arguments: ['@database', 'config']
public: false
tags:
- { name: backend_overridable }
config.storage.file:
class: Drupal\Core\Config\FileStorage
factory_class: Drupal\Core\Config\FileStorageFactory
factory_method: getActive
public: false
config.storage.staging:
class: Drupal\Core\Config\FileStorage
factory_class: Drupal\Core\Config\FileStorageFactory
factory_method: getStaging
config.storage.snapshot:
class: Drupal\Core\Config\DatabaseStorage
arguments: ['@database', config_snapshot]
tags:
- { name: backend_overridable }
config.storage.schema:
class: Drupal\Core\Config\ExtensionInstallStorage
arguments: ['@config.storage', 'config/schema']
config.storage.installer:
class: Drupal\Core\Config\InstallStorage
config.typed:
class: Drupal\Core\Config\TypedConfigManager
arguments: ['@config.storage', '@config.storage.schema', '@cache.discovery', '@module_handler']
tags:
- { name: plugin_manager_cache_clear }
context.handler:
class: Drupal\Core\Plugin\Context\ContextHandler
arguments: ['@typed_data_manager']
cron:
class: Drupal\Core\Cron
arguments: ['@module_handler', '@lock', '@queue', '@state', '@current_user', '@session_manager', '@logger.channel.cron', '@plugin.manager.queue_worker']
diff.formatter:
class: Drupal\Core\Diff\DiffFormatter
arguments: ['@config.factory']
database:
class: Drupal\Core\Database\Connection
factory_class: Drupal\Core\Database\Database
factory_method: getConnection
arguments: [default]
form_builder:
class: Drupal\Core\Form\FormBuilder
arguments: ['@form_validator', '@form_submitter', '@form_cache', '@module_handler', '@event_dispatcher', '@request_stack', '@class_resolver', '@theme.manager', '@?csrf_token', '@?http_kernel']
form_validator:
class: Drupal\Core\Form\FormValidator
arguments: ['@request_stack', '@string_translation', '@csrf_token', '@logger.channel.form']
form_submitter:
class: Drupal\Core\Form\FormSubmitter
arguments: ['@request_stack', '@url_generator']
form_cache:
class: Drupal\Core\Form\FormCache
arguments: ['@keyvalue.expirable', '@module_handler', '@current_user', '@csrf_token']
public: false # Private to form_builder
keyvalue:
class: Drupal\Core\KeyValueStore\KeyValueFactory
arguments: ['@service_container', '%factory.keyvalue%']
keyvalue.database:
class: Drupal\Core\KeyValueStore\KeyValueDatabaseFactory
arguments: ['@serialization.phpserialize', '@database']
keyvalue.expirable:
class: Drupal\Core\KeyValueStore\KeyValueExpirableFactory
arguments: ['@service_container', '%factory.keyvalue.expirable%']
keyvalue.expirable.database:
class: Drupal\Core\KeyValueStore\KeyValueDatabaseExpirableFactory
arguments: ['@serialization.phpserialize', '@database']
tags:
- { name: needs_destruction }
logger.factory:
class: Drupal\Core\Logger\LoggerChannelFactory
parent: container.trait
tags:
- { name: service_collector, tag: logger, call: addLogger }
logger.channel_base:
abstract: true
class: Drupal\Core\Logger\LoggerChannel
factory_method: get
factory_service: logger.factory
logger.channel.default:
parent: logger.channel_base
arguments: ['system']
logger.channel.php:
parent: logger.channel_base
arguments: ['php']
logger.channel.image:
parent: logger.channel_base
arguments: ['image']
logger.channel.cron:
parent: logger.channel_base
arguments: ['cron']
logger.channel.form:
parent: logger.channel_base
arguments: ['form']
logger.log_message_parser:
class: Drupal\Core\Logger\LogMessageParser
serialization.json:
class: Drupal\Component\Serialization\Json
serialization.phpserialize:
class: Drupal\Component\Serialization\PhpSerialize
serialization.yaml:
class: Drupal\Component\Serialization\Yaml
settings:
class: Drupal\Core\Site\Settings
factory_class: Drupal\Core\Site\Settings
factory_method: getInstance
state:
class: Drupal\Core\State\State
arguments: ['@keyvalue']
queue:
class: Drupal\Core\Queue\QueueFactory
arguments: ['@settings']
calls:
- [setContainer, ['@service_container']]
queue.database:
class: Drupal\Core\Queue\QueueDatabaseFactory
arguments: ['@database']
path.alias_whitelist:
class: Drupal\Core\Path\AliasWhitelist
tags:
- { name: needs_destruction }
arguments: [path_alias_whitelist, '@cache.default', '@lock', '@state', '@path.alias_storage']
path.alias_manager:
class: Drupal\Core\Path\AliasManager
arguments: ['@path.alias_storage', '@path.alias_whitelist', '@language_manager', '@cache.data']
http_client:
class: Drupal\Core\Http\Client
tags:
- { name: service_collector, tag: http_client_subscriber, call: attach }
theme.negotiator:
class: Drupal\Core\Theme\ThemeNegotiator
arguments: ['@access_check.theme']
tags:
- { name: service_collector, tag: theme_negotiator, call: addNegotiator }
theme.negotiator.default:
class: Drupal\Core\Theme\DefaultNegotiator
arguments: ['@config.factory']
tags:
- { name: theme_negotiator, priority: -100 }
theme.negotiator.ajax_base_page:
class: Drupal\Core\Theme\AjaxBasePageNegotiator
arguments: ['@csrf_token', '@config.factory', '@request_stack']
tags:
- { name: theme_negotiator, priority: 1000 }
container.namespaces:
class: ArrayObject
arguments: [ '%container.namespaces%' ]
container.trait:
abstract: true
calls:
- [setContainer, ['@service_container']]
default_plugin_manager:
abstract: true
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
module_handler:
class: Drupal\Core\Extension\ModuleHandler
arguments: ['%container.modules%', '@cache.bootstrap']
theme_handler:
class: Drupal\Core\Extension\ThemeHandler
arguments: ['@config.factory', '@module_handler', '@state', '@info_parser', '@logger.channel.default', '@asset.css.collection_optimizer', '@config.installer', '@config.manager', '@router.builder']
entity.manager:
class: Drupal\Core\Entity\EntityManager
arguments: ['@container.namespaces', '@module_handler', '@cache.discovery', '@language_manager', '@string_translation', '@class_resolver', '@typed_data_manager', '@entity.definitions.installed']
parent: container.trait
tags:
- { name: plugin_manager_cache_clear }
entity.definitions.installed:
class: Drupal\Core\KeyValueStore\KeyValueStoreInterface
factory_method: get
factory_service: keyvalue
arguments: ['entity.definitions.installed']
entity.definition_update_manager:
class: Drupal\Core\Entity\EntityDefinitionUpdateManager
arguments: ['@entity.manager']
entity.form_builder:
class: Drupal\Core\Entity\EntityFormBuilder
arguments: ['@entity.manager', '@form_builder']
plugin.manager.block:
class: Drupal\Core\Block\BlockManager
parent: default_plugin_manager
plugin.manager.field.field_type:
class: Drupal\Core\Field\FieldTypePluginManager
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
plugin.manager.field.widget:
class: Drupal\Core\Field\WidgetPluginManager
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
plugin.manager.field.formatter:
class: Drupal\Core\Field\FormatterPluginManager
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@plugin.manager.field.field_type']
plugin.manager.archiver:
class: Drupal\Core\Archiver\ArchiverManager
parent: default_plugin_manager
plugin.manager.action:
class: Drupal\Core\Action\ActionManager
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler']
plugin.manager.menu.link:
class: Drupal\Core\Menu\MenuLinkManager
arguments: ['@menu.tree_storage', '@menu_link.static.overrides', '@module_handler']
menu.link_tree:
class: Drupal\Core\Menu\MenuLinkTree
arguments: ['@menu.tree_storage', '@plugin.manager.menu.link', '@router.route_provider', '@menu.active_trail', '@controller_resolver', '@cache.menu', '@current_route_match']
menu.default_tree_manipulators:
class: Drupal\Core\Menu\DefaultMenuLinkTreeManipulators
arguments: ['@access_manager', '@current_user', '@entity.query']
menu.active_trail:
class: Drupal\Core\Menu\MenuActiveTrail
arguments: ['@plugin.manager.menu.link', '@current_route_match']
menu.parent_form_selector:
class: Drupal\Core\Menu\MenuParentFormSelector
arguments: ['@menu.link_tree', '@entity.manager', '@string_translation']
plugin.manager.menu.local_action:
class: Drupal\Core\Menu\LocalActionManager
arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
plugin.manager.menu.local_task:
class: Drupal\Core\Menu\LocalTaskManager
arguments: ['@controller_resolver', '@request_stack', '@router.route_provider', '@router.builder', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user']
plugin.manager.menu.contextual_link:
class: Drupal\Core\Menu\ContextualLinkManager
arguments: ['@controller_resolver', '@module_handler', '@cache.discovery', '@language_manager', '@access_manager', '@current_user', '@request_stack']
plugin.manager.display_variant:
class: Drupal\Core\Display\VariantManager
parent: default_plugin_manager
plugin.manager.queue_worker:
class: Drupal\Core\Queue\QueueWorkerManager
parent: default_plugin_manager
plugin.cache_clearer:
class: Drupal\Core\Plugin\CachedDiscoveryClearer
paramconverter.menu_link:
class: Drupal\Core\ParamConverter\MenuLinkPluginConverter
tags:
- { name: paramconverter }
arguments: ['@plugin.manager.menu.link']
menu.tree_storage:
class: Drupal\Core\Menu\MenuTreeStorage
arguments: ['@database', '@cache.menu', 'menu_tree']
public: false # Private to plugin.manager.menu.link and menu.link_tree
tags:
- { name: backend_overridable }
menu_link.static.overrides:
class: Drupal\Core\Menu\StaticMenuLinkOverrides
arguments: ['@config.factory']
request_stack:
class: Symfony\Component\HttpFoundation\RequestStack
tags:
- { name: persist }
current_route_match:
class: Drupal\Core\Routing\CurrentRouteMatch
arguments: ['@request_stack']
event_dispatcher:
class: Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
arguments: ['@service_container']
controller_resolver:
class: Drupal\Core\Controller\ControllerResolver
arguments: ['@class_resolver', '@logger.channel.default']
class_resolver:
class: Drupal\Core\DependencyInjection\ClassResolver
calls:
- [setContainer, ['@service_container']]
title_resolver:
class: Drupal\Core\Controller\TitleResolver
arguments: ['@controller_resolver', '@string_translation']
http_kernel:
class: Symfony\Component\HttpKernel\HttpKernel
factory_method: resolve
factory_service: http_kernel_factory
arguments: ['@http_kernel.basic']
http_kernel_factory:
class: Stack\Builder
http_kernel.basic:
class: Symfony\Component\HttpKernel\HttpKernel
arguments: ['@event_dispatcher', '@controller_resolver', '@request_stack']
http_middleware.reverse_proxy:
class: Drupal\Core\StackMiddleware\ReverseProxyMiddleware
arguments: ['@settings']
tags:
- { name: http_middleware, priority: 300 }
http_middleware.page_cache:
class: Drupal\Core\StackMiddleware\PageCache
arguments: ['@kernel']
tags:
- { name: http_middleware, priority: 200 }
http_middleware.kernel_pre_handle:
class: Drupal\Core\StackMiddleware\KernelPreHandle
arguments: ['@kernel']
tags:
- { name: http_middleware, priority: 100 }
language_manager:
class: Drupal\Core\Language\LanguageManager
arguments: ['@language.default']
language.default:
class: Drupal\Core\Language\LanguageDefault
arguments: ['%language.default_values%']
string_translator.custom_strings:
class: Drupal\Core\StringTranslation\Translator\CustomStrings
arguments: ['@settings']
tags:
- { name: string_translator, priority: 30 }
string_translation:
class: Drupal\Core\StringTranslation\TranslationManager
arguments: ['@language_manager']
calls:
- [initLanguageManager]
tags:
- { name: service_collector, tag: string_translator, call: addTranslator }
database.replica:
class: Drupal\Core\Database\Connection
factory_class: Drupal\Core\Database\Database
factory_method: getConnection
arguments: [replica]
typed_data_manager:
class: Drupal\Core\TypedData\TypedDataManager
parent: default_plugin_manager
calls:
- [setValidationConstraintManager, ['@validation.constraint']]
tags:
- { name: plugin_manager_cache_clear }
validation.constraint:
class: Drupal\Core\Validation\ConstraintManager
parent: default_plugin_manager
lock:
class: Drupal\Core\Lock\DatabaseLockBackend
arguments: ['@database']
tags:
- { name: backend_overridable }
router.request_context:
class: Symfony\Component\Routing\RequestContext
tags:
- { name: persist }
router.admin_context:
class: Drupal\Core\Routing\AdminContext
arguments: ['@request_stack']
router.route_provider:
class: Drupal\Core\Routing\RouteProvider
arguments: ['@database', '@router.builder', '@state']
tags:
- { name: event_subscriber }
- { name: backend_overridable }
router.route_preloader:
class: Drupal\Core\Routing\RoutePreloader
arguments: ['@router.route_provider', '@state', '@content_negotiation']
tags:
- { name: 'event_subscriber' }
router.matcher.final_matcher:
class: Drupal\Core\Routing\UrlMatcher
router.matcher:
class: Symfony\Cmf\Component\Routing\NestedMatcher\NestedMatcher
arguments: ['@router.route_provider']
calls:
- [setFinalMatcher, ['@router.matcher.final_matcher']]
tags:
- { name: service_collector, tag: route_filter, call: addRouteFilter }
url_generator:
class: Drupal\Core\Routing\UrlGenerator
arguments: ['@router.route_provider', '@path_processor_manager', '@route_processor_manager', '@config.factory', '@settings', '@logger.channel.default', '@request_stack']
calls:
- [setContext, ['@?router.request_context']]
link_generator:
class: Drupal\Core\Utility\LinkGenerator
arguments: ['@url_generator', '@module_handler']
router:
class: Drupal\Core\Routing\AccessAwareRouter
arguments: ['@router.no_access_checks', '@access_manager', '@current_user']
router.dynamic:
class: Symfony\Cmf\Component\Routing\DynamicRouter
arguments: ['@router.request_context', '@router.matcher', '@url_generator']
tags:
- { name: service_collector, tag: route_enhancer, call: addRouteEnhancer }
router.no_access_checks:
class: Symfony\Cmf\Component\Routing\ChainRouter
calls:
- [setContext, ['@router.request_context']]
- [add, ['@router.dynamic']]
router.path_roots_subscriber:
class: Drupal\Core\EventSubscriber\PathRootsSubscriber
arguments: ['@state']
tags:
- { name: event_subscriber }
entity.query:
class: Drupal\Core\Entity\Query\QueryFactory
arguments: ['@entity.manager']
calls:
- [setContainer, ['@service_container']]
entity.query.config:
class: Drupal\Core\Config\Entity\Query\QueryFactory
arguments: ['@config.storage', '@config.factory']
entity.query.sql:
class: Drupal\Core\Entity\Query\Sql\QueryFactory
arguments: ['@database']
tags:
- { name: backend_overridable }
entity.query.keyvalue:
class: Drupal\Core\Entity\KeyValueStore\Query\QueryFactory
arguments: ['@keyvalue']
router.dumper:
class: Drupal\Core\Routing\MatcherDumper
arguments: ['@database', '@state']
tags:
- { name: backend_overridable }
router.builder:
class: Drupal\Core\Routing\RouteBuilder
arguments: ['@router.dumper', '@lock', '@event_dispatcher', '@module_handler', '@controller_resolver', '@state']
router.rebuild_subscriber:
class: Drupal\Core\EventSubscriber\RouterRebuildSubscriber
arguments: ['@router.builder']
tags:
- { name: event_subscriber }
menu.rebuild_subscriber:
class: Drupal\Core\EventSubscriber\MenuRouterRebuildSubscriber
arguments: ['@lock', '@plugin.manager.menu.link']
tags:
- { name: event_subscriber }
path.alias_storage:
class: Drupal\Core\Path\AliasStorage
arguments: ['@database', '@module_handler']
tags:
- { name: backend_overridable }
path.matcher:
class: Drupal\Core\Path\PathMatcher
arguments: ['@config.factory']
path.validator:
class: Drupal\Core\Path\PathValidator
arguments: ['@router', '@router.no_access_checks', '@current_user', '@path_processor_manager']
# The argument to the hashing service defined in services.yml, to the
# constructor of PhpassHashedPassword is the log2 number of iterations for
# password stretching.
# @todo increase by 1 every Drupal version in order to counteract increases in
# the speed and power of computers available to crack the hashes. The current
# password hashing method was introduced in Drupal 7 with a log2 count of 15.
password:
class: Drupal\Core\Password\PhpassHashedPassword
arguments: [16]
accept_header_matcher:
class: Drupal\Core\Routing\AcceptHeaderMatcher
arguments: ['@content_negotiation']
tags:
- { name: route_filter }
content_type_header_matcher:
class: Drupal\Core\Routing\ContentTypeHeaderMatcher
tags:
- { name: route_filter }
paramconverter_manager:
class: Drupal\Core\ParamConverter\ParamConverterManager
tags:
- { name: service_collector, tag: paramconverter, call: addConverter }
paramconverter_subscriber:
class: Drupal\Core\EventSubscriber\ParamConverterSubscriber
tags:
- { name: event_subscriber }
arguments: ['@paramconverter_manager']
paramconverter.entity:
class: Drupal\Core\ParamConverter\EntityConverter
tags:
- { name: paramconverter }
arguments: ['@entity.manager']
paramconverter.configentity_admin:
class: Drupal\Core\ParamConverter\AdminPathConfigEntityConverter
tags:
# Use a higher priority than EntityConverter, see the class for details.
- { name: paramconverter, priority: 5 }
arguments: ['@entity.manager', '@config.factory', '@router.admin_context']
route_subscriber.module:
class: Drupal\Core\EventSubscriber\ModuleRouteSubscriber
tags:
- { name: event_subscriber }
arguments: ['@module_handler']
resolver_manager.entity:
class: Drupal\Core\Entity\EntityResolverManager
arguments: ['@entity.manager', '@controller_resolver', '@class_resolver']
route_subscriber.entity:
class: Drupal\Core\EventSubscriber\EntityRouteAlterSubscriber
tags:
- { name: event_subscriber }
arguments: ['@resolver_manager.entity']
ajax_subscriber:
class: Drupal\Core\EventSubscriber\AjaxSubscriber
tags:
- { name: event_subscriber }
route_enhancer.param_conversion:
class: Drupal\Core\Routing\Enhancer\ParamConversionEnhancer
arguments: ['@paramconverter_manager']
tags:
- { name: route_enhancer }
- { name: event_subscriber }
route_enhancer.authentication:
class: Drupal\Core\Routing\Enhancer\AuthenticationEnhancer
tags:
- { name: route_enhancer, priority: 1000 }
arguments: ['@authentication', '@current_user']
route_enhancer.entity:
class: Drupal\Core\Entity\Enhancer\EntityRouteEnhancer
arguments: ['@controller_resolver', '@entity.manager', '@form_builder']
tags:
- { name: route_enhancer, priority: 20 }
route_content_controller_subscriber:
class: Drupal\Core\EventSubscriber\ContentControllerSubscriber
arguments: ['@content_negotiation']
tags:
- { name: event_subscriber }
route_content_form_controller_subscriber:
class: Drupal\Core\EventSubscriber\ContentFormControllerSubscriber
arguments: ['@class_resolver', '@controller_resolver', '@form_builder']
parent: container.trait
tags:
- { name: event_subscriber }
route_special_attributes_subscriber:
class: Drupal\Core\EventSubscriber\SpecialAttributesRouteSubscriber
tags:
- { name: event_subscriber }
route_http_method_subscriber:
class: Drupal\Core\EventSubscriber\RouteMethodSubscriber
tags:
- { name: event_subscriber }
controller.page:
class: Drupal\Core\Controller\HtmlPageController
arguments: ['@controller_resolver', '@title_resolver', '@render_html_renderer']
controller.ajax:
class: Drupal\Core\Controller\AjaxController
arguments: ['@controller_resolver', '@ajax_response_renderer']
controller.dialog:
class: Drupal\Core\Controller\DialogController
arguments: ['@controller_resolver', '@title_resolver']
ajax_response_renderer:
class: Drupal\Core\Ajax\AjaxResponseRenderer
router_listener:
class: Symfony\Component\HttpKernel\EventListener\RouterListener
tags:
- { name: event_subscriber }
arguments: ['@router', '@router.request_context', NULL, '@request_stack']
content_negotiation:
class: Drupal\Core\ContentNegotiation
view_subscriber:
class: Drupal\Core\EventSubscriber\ViewSubscriber
tags:
- { name: event_subscriber }
arguments: ['@content_negotiation', '@title_resolver', '@ajax_response_renderer']
html_view_subscriber:
class: Drupal\Core\EventSubscriber\HtmlViewSubscriber
tags:
- { name: event_subscriber }
arguments: ['@html_fragment_renderer', '@html_page_renderer']
render_html_renderer:
class: Drupal\Core\Page\RenderHtmlRenderer
arguments: ['@url_generator']
html_fragment_renderer:
class: Drupal\Core\Page\DefaultHtmlFragmentRenderer
arguments: ['@language_manager']
html_page_renderer:
class: Drupal\Core\Page\DefaultHtmlPageRenderer
private_key:
class: Drupal\Core\PrivateKey
arguments: ['@state']
csrf_token:
class: Drupal\Core\Access\CsrfTokenGenerator
arguments: ['@private_key', '@session_manager.metadata_bag']
access_arguments_resolver_factory:
class: Drupal\Core\Access\AccessArgumentsResolverFactory
access_manager:
class: Drupal\Core\Access\AccessManager
arguments: ['@router.route_provider', '@paramconverter_manager', '@access_arguments_resolver_factory', '@current_user']
calls:
- [setContainer, ['@service_container']]
access_route_subscriber:
class: Drupal\Core\EventSubscriber\AccessRouteSubscriber
tags:
- { name: event_subscriber }
arguments: ['@access_manager']
access_check.default:
class: Drupal\Core\Access\DefaultAccessCheck
tags:
- { name: access_check, applies_to: _access }
access_check.entity:
class: Drupal\Core\Entity\EntityAccessCheck
tags:
- { name: access_check, applies_to: _entity_access }
access_check.entity_create:
class: Drupal\Core\Entity\EntityCreateAccessCheck
arguments: ['@entity.manager']
tags:
- { name: access_check, applies_to: _entity_create_access }
access_check.theme:
class: Drupal\Core\Theme\ThemeAccessCheck
tags:
- { name: access_check, applies_to: _access_theme }
access_check.custom:
class: Drupal\Core\Access\CustomAccessCheck
arguments: ['@controller_resolver', '@access_arguments_resolver_factory']
tags:
- { name: access_check, applies_to: _custom_access }
access_check.csrf:
class: Drupal\Core\Access\CsrfAccessCheck
tags:
- { name: access_check, applies_to: _csrf_token, needs_incoming_request: TRUE }
arguments: ['@csrf_token']
maintenance_mode:
class: Drupal\Core\Site\MaintenanceMode
arguments: ['@state', '@current_user']
maintenance_mode_subscriber:
class: Drupal\Core\EventSubscriber\MaintenanceModeSubscriber
arguments: ['@maintenance_mode', '@config.factory', '@string_translation', '@url_generator', '@current_user']
tags:
- { name: event_subscriber }
path_subscriber:
class: Drupal\Core\EventSubscriber\PathSubscriber
tags:
- { name: event_subscriber }
arguments: ['@path.alias_manager', '@path_processor_manager']
finish_response_subscriber:
class: Drupal\Core\EventSubscriber\FinishResponseSubscriber
tags:
- { name: event_subscriber }
arguments: ['@language_manager', '@config.factory', '@page_cache_request_policy', '@page_cache_response_policy']
redirect_response_subscriber:
class: Drupal\Core\EventSubscriber\RedirectResponseSubscriber
arguments: ['@url_generator']
tags:
- { name: event_subscriber }
request_close_subscriber:
class: Drupal\Core\EventSubscriber\RequestCloseSubscriber
tags:
- { name: event_subscriber }
arguments: ['@module_handler']
config_import_subscriber:
class: Drupal\Core\EventSubscriber\ConfigImportSubscriber
tags:
- { name: event_subscriber }
config_snapshot_subscriber:
class: Drupal\Core\EventSubscriber\ConfigSnapshotSubscriber
tags:
- { name: event_subscriber }
arguments: ['@config.manager', '@config.storage', '@config.storage.snapshot']
exception.default_json:
class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
tags:
- { name: event_subscriber }
exception.default_html:
class: Drupal\Core\EventSubscriber\DefaultExceptionHtmlSubscriber
tags:
- { name: event_subscriber }
arguments: ['@html_fragment_renderer', '@html_page_renderer']
exception.default:
class: Drupal\Core\EventSubscriber\DefaultExceptionSubscriber
tags:
- { name: event_subscriber }
arguments: ['@html_fragment_renderer', '@html_page_renderer', '@config.factory']
exception.logger:
class: Drupal\Core\EventSubscriber\ExceptionLoggingSubscriber
tags:
- { name: event_subscriber }
arguments: ['@logger.factory']
exception.custom_page_json:
class: Drupal\Core\EventSubscriber\ExceptionJsonSubscriber
tags:
- { name: event_subscriber }
arguments: ['@config.factory', '@path.alias_manager', '@http_kernel']
exception.custom_page_html:
class: Drupal\Core\EventSubscriber\CustomPageExceptionHtmlSubscriber
tags:
- { name: event_subscriber }
arguments: ['@config.factory', '@path.alias_manager', '@http_kernel', '@logger.channel.php']
exception.fast_404_html:
class: Drupal\Core\EventSubscriber\Fast404ExceptionHtmlSubscriber
tags:
- { name: event_subscriber }
arguments: ['@config.factory', '@http_kernel']
exception.test_site:
class: Drupal\Core\EventSubscriber\ExceptionTestSiteSubscriber
tags:
- { name: event_subscriber }
route_processor_manager:
class: Drupal\Core\RouteProcessor\RouteProcessorManager
tags:
- { name: service_collector, tag: route_processor_outbound, call: addOutbound }
path_processor_manager:
class: Drupal\Core\PathProcessor\PathProcessorManager
tags:
- { name: service_collector, tag: path_processor_inbound, call: addInbound }
- { name: service_collector, tag: path_processor_outbound, call: addOutbound }
path_processor_decode:
class: Drupal\Core\PathProcessor\PathProcessorDecode
tags:
- { name: path_processor_inbound, priority: 1000 }
path_processor_front:
class: Drupal\Core\PathProcessor\PathProcessorFront
tags:
- { name: path_processor_inbound, priority: 200 }
- { name: path_processor_outbound, priority: 200 }
arguments: ['@config.factory']
path_processor_none:
class: Drupal\Core\PathProcessor\PathProcessorNone
tags:
- { name: path_processor_outbound, priority: 200 }
path_processor_current:
class: Drupal\Core\PathProcessor\PathProcessorCurrent
tags:
- { name: path_processor_outbound, priority: 200 }
path_processor_alias:
class: Drupal\Core\PathProcessor\PathProcessorAlias
tags:
- { name: path_processor_inbound, priority: 100 }
- { name: path_processor_outbound, priority: 300 }
arguments: ['@path.alias_manager']
route_processor_csrf:
class: Drupal\Core\Access\RouteProcessorCsrf
tags:
- { name: route_processor_outbound }
arguments: ['@csrf_token']
transliteration:
class: Drupal\Core\Transliteration\PHPTransliteration
flood:
class: Drupal\Core\Flood\DatabaseBackend
arguments: ['@database', '@request_stack']
tags:
- { name: backend_overridable }
plugin.manager.mail:
class: Drupal\Core\Mail\MailManager
arguments: ['@container.namespaces', '@cache.discovery', '@module_handler', '@config.factory', '@logger.factory', '@string_translation']
plugin.manager.condition:
class: Drupal\Core\Condition\ConditionManager
parent: default_plugin_manager
plugin.manager.element_info:
class: Drupal\Core\Render\ElementInfoManager
parent: default_plugin_manager
kernel_destruct_subscriber:
class: Drupal\Core\EventSubscriber\KernelDestructionSubscriber
tags:
- { name: event_subscriber }
calls:
- [setContainer, ['@service_container']]
ajax.subscriber:
class: Drupal\Core\Ajax\AjaxSubscriber
tags:
- { name: event_subscriber }
image.toolkit.manager:
class: Drupal\Core\ImageToolkit\ImageToolkitManager
arguments: ['@config.factory']
parent: default_plugin_manager
image.toolkit.operation.manager:
class: Drupal\Core\ImageToolkit\ImageToolkitOperationManager
arguments: ['@logger.channel.image']
parent: default_plugin_manager
image.factory:
class: Drupal\Core\Image\ImageFactory
arguments: ['@image.toolkit.manager']
breadcrumb:
class: Drupal\Core\Breadcrumb\BreadcrumbManager
arguments: ['@module_handler']
tags:
- { name: service_collector, tag: breadcrumb_builder, call: addBuilder }
token:
class: Drupal\Core\Utility\Token
arguments: ['@module_handler', '@cache.discovery', '@language_manager']
batch.storage:
class: Drupal\Core\Batch\BatchStorage
arguments: ['@database', '@session_manager', '@csrf_token']
tags:
- { name: backend_overridable }
replica_database_ignore__subscriber:
class: Drupal\Core\EventSubscriber\ReplicaDatabaseIgnoreSubscriber
tags:
- {name: event_subscriber}
country_manager:
class: Drupal\Core\Locale\CountryManager
arguments: ['@module_handler']
date.formatter:
class: Drupal\Core\Datetime\DateFormatter
arguments: ['@entity.manager', '@language_manager', '@string_translation', '@config.factory']
feed.bridge.reader:
class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
calls:
- [setContainer, ['@service_container']]
arguments: ['feed.reader.']
feed.bridge.writer:
class: Drupal\Component\Bridge\ZfExtensionManagerSfContainer
calls:
- [setContainer, ['@service_container']]
arguments: ['feed.writer.']
# Zend Feed reader plugins
feed.reader.dublincoreentry:
class: Zend\Feed\Reader\Extension\DublinCore\Entry
feed.reader.dublincorefeed:
class: Zend\Feed\Reader\Extension\DublinCore\Feed
feed.reader.contententry:
class: Zend\Feed\Reader\Extension\Content\Entry
feed.reader.atomentry:
class: Zend\Feed\Reader\Extension\Atom\Entry
feed.reader.atomfeed:
class: Zend\Feed\Reader\Extension\Atom\Feed
feed.reader.slashentry:
class: Zend\Feed\Reader\Extension\Slash\Entry
feed.reader.wellformedwebentry:
class: Zend\Feed\Reader\Extension\WellFormedWeb\Entry
feed.reader.threadentry:
class: Zend\Feed\Reader\Extension\Thread\Entry
feed.reader.podcastentry:
class: Zend\Feed\Reader\Extension\Podcast\Entry
feed.reader.podcastfeed:
class: Zend\Feed\Reader\Extension\Podcast\Feed
# Zend Feed writer plugins
feed.writer.atomrendererfeed:
class: Zend\Feed\Writer\Extension\Atom\Renderer\Feed
feed.writer.contentrendererentry:
class: Zend\Feed\Writer\Extension\Content\Renderer\Entry
feed.writer.dublincorerendererentry:
class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Entry
feed.writer.dublincorerendererfeed:
class: Zend\Feed\Writer\Extension\DublinCore\Renderer\Feed
feed.writer.itunesentry:
class: Zend\Feed\Writer\Extension\ITunes\Entry
feed.writer.itunesfeed:
class: Zend\Feed\Writer\Extension\ITunes\Feed
feed.writer.itunesrendererentry:
class: Zend\Feed\Writer\Extension\ITunes\Renderer\Entry
feed.writer.itunesrendererfeed:
class: Zend\Feed\Writer\Extension\ITunes\Renderer\Feed
feed.writer.slashrendererentry:
class: Zend\Feed\Writer\Extension\Slash\Renderer\Entry
feed.writer.threadingrendererentry:
class: Zend\Feed\Writer\Extension\Threading\Renderer\Entry
feed.writer.wellformedwebrendererentry:
class: Zend\Feed\Writer\Extension\WellFormedWeb\Renderer\Entry
theme.manager:
class: Drupal\Core\Theme\ThemeManager
arguments: ['@theme.registry', '@theme.negotiator', '@theme.initialization', '@request_stack']
theme.initialization:
class: Drupal\Core\Theme\ThemeInitialization
arguments: ['@theme_handler', '@state']
theme.registry:
class: Drupal\Core\Theme\Registry
arguments: ['@cache.default', '@lock', '@module_handler']
tags:
- { name: needs_destruction }
authentication:
class: Drupal\Core\Authentication\AuthenticationManager
tags:
- { name: service_collector, tag: authentication_provider, call: addProvider }
authentication_subscriber:
class: Drupal\Core\EventSubscriber\AuthenticationSubscriber
tags:
- { name: event_subscriber }
arguments: ['@authentication']
current_user:
class: Drupal\Core\Session\AccountProxy
arguments: ['@authentication', '@request_stack']
session_manager:
class: Drupal\Core\Session\SessionManager
arguments: ['@request_stack', '@database', '@session_manager.metadata_bag', '@settings']
tags:
- { name: backend_overridable }
session_manager.metadata_bag:
class: Drupal\Core\Session\MetadataBag
arguments: ['@settings']
asset.css.collection_renderer:
class: Drupal\Core\Asset\CssCollectionRenderer
arguments: [ '@state' ]
asset.css.collection_optimizer:
class: Drupal\Core\Asset\CssCollectionOptimizer
arguments: [ '@asset.css.collection_grouper', '@asset.css.optimizer', '@asset.css.dumper', '@state' ]
asset.css.optimizer:
class: Drupal\Core\Asset\CssOptimizer
asset.css.collection_grouper:
class: Drupal\Core\Asset\CssCollectionGrouper
asset.css.dumper:
class: Drupal\Core\Asset\AssetDumper
asset.js.collection_renderer:
class: Drupal\Core\Asset\JsCollectionRenderer
arguments: [ '@state' ]
asset.js.collection_optimizer:
class: Drupal\Core\Asset\JsCollectionOptimizer
arguments: [ '@asset.js.collection_grouper', '@asset.js.optimizer', '@asset.js.dumper', '@state' ]
asset.js.optimizer:
class: Drupal\Core\Asset\JsOptimizer
asset.js.collection_grouper:
class: Drupal\Core\Asset\JsCollectionGrouper
asset.js.dumper:
class: Drupal\Core\Asset\AssetDumper
library.discovery:
class: Drupal\Core\Asset\LibraryDiscovery
arguments: ['@library.discovery.collector']
library.discovery.collector:
class: Drupal\Core\Asset\LibraryDiscoveryCollector
arguments: ['@cache.discovery', '@lock', '@library.discovery.parser']
tags:
- { name: needs_destruction }
library.discovery.parser:
class: Drupal\Core\Asset\LibraryDiscoveryParser
arguments: ['@module_handler']
info_parser:
class: Drupal\Core\Extension\InfoParser
twig:
class: Drupal\Core\Template\TwigEnvironment
arguments: ['@twig.loader', '@module_handler', '@theme_handler', '%twig.config%']
tags:
- { name: service_collector, tag: 'twig.extension', call: addExtension }
twig.extension:
class: Drupal\Core\Template\TwigExtension
tags:
- { name: twig.extension, priority: 100 }
calls:
- [setGenerators, ['@url_generator']]
# @todo Figure out what to do about debugging functions.
# @see http://drupal.org/node/1804998
twig.extension.debug:
class: Twig_Extension_Debug
tags:
- { name: twig.extension }
twig.loader:
alias: twig.loader.filesystem
twig.loader.filesystem:
class: Twig_Loader_Filesystem
arguments: ['%app.root%']
element_info:
alias: plugin.manager.element_info
file.mime_type.guesser:
class: Drupal\Core\File\MimeType\MimeTypeGuesser
tags:
- { name: service_collector, tag: mime_type_guesser, call: addGuesser }
file.mime_type.guesser.extension:
class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
arguments: ['@module_handler']
tags:
- { name: mime_type_guesser }