View source
- parameters:
- workspace.default: 1
-
- services:
- # Index Factory
- multiversion.entity_index.factory:
- class: Drupal\multiversion\Entity\Index\MultiversionIndexFactory
- arguments: ['@service_container', '@workspace.manager']
-
- # Index children
- multiversion.entity_index.sequence.scope:
- parent: multiversion.entity_index.sequence
- scope: prototype
- multiversion.entity_index.id.scope:
- parent: multiversion.entity_index.id
- scope: prototype
- multiversion.entity_index.uuid.scope:
- parent: multiversion.entity_index.uuid
- scope: prototype
- multiversion.entity_index.rev.scope:
- parent: multiversion.entity_index.rev
- scope: prototype
- multiversion.entity_index.rev.tree.scope:
- parent: multiversion.entity_index.rev.tree
- scope: prototype
-
- # Indexes
- multiversion.entity_index.sequence:
- class: Drupal\multiversion\Entity\Index\SequenceIndex
- arguments: ['@keyvalue.sorted_set', '@workspace.manager', '@multiversion.manager']
- multiversion.entity_index.id:
- class: Drupal\multiversion\Entity\Index\EntityIndex
- arguments: ['@keyvalue', '@workspace.manager']
- multiversion.entity_index.uuid:
- class: Drupal\multiversion\Entity\Index\UuidIndex
- arguments: ['@keyvalue', '@workspace.manager']
- multiversion.entity_index.rev:
- class: Drupal\multiversion\Entity\Index\RevisionIndex
- arguments: ['@keyvalue', '@workspace.manager']
- multiversion.entity_index.rev.tree:
- class: Drupal\multiversion\Entity\Index\RevisionTreeIndex
- arguments: ['@keyvalue', '@workspace.manager', '@multiversion.entity_index.factory']
-
- multiversion.entity.query.sql:
- class: Drupal\multiversion\Entity\Query\Sql\QueryFactory
- arguments: ['@database']
- multiversion.manager:
- class: Drupal\multiversion\MultiversionManager
- arguments: ['@workspace.manager', '@serializer', '@entity.manager', '@state', '@language_manager', '@cache.discovery', '@database', '@entity_field.manager', '@event_dispatcher']
- calls:
- - [setContainer, ['@service_container']]
- workspace.manager:
- class: Drupal\multiversion\Workspace\WorkspaceManager
- arguments: ['@request_stack', '@entity_type.manager', '@current_user', '@logger.channel.workspace']
- calls:
- - [setContainer, ['@service_container']]
- tags:
- - { name: service_collector, tag: workspace_negotiator, call: addNegotiator }
- workspace.conflict_tracker:
- class: Drupal\multiversion\Workspace\ConflictTracker
- arguments: ['@keyvalue', '@workspace.manager']
- cache_context.workspace:
- class: Drupal\multiversion\WorkspaceCacheContext
- arguments: ['@workspace.manager']
- tags:
- - { name: cache.context }
- multiversion.plugin.manager.block:
- decorates: plugin.manager.block
- class: Drupal\multiversion\Block\BlockManager
- decoration_priority: 50
- parent: default_plugin_manager
- arguments: ['@logger.channel.default', '@database', '@workspace.manager']
- logger.channel.workspace:
- parent: logger.channel_base
- arguments: ['cron']
-
- # @todo: {@link https://www.drupal.org/node/2597414 Simplify the container
- # definition for negotiators.}
- workspace.negotiator.default:
- class: Drupal\multiversion\Workspace\DefaultWorkspaceNegotiator
- calls:
- - [setContainer, ['@service_container']]
- - [setCurrentUser, ['@current_user']]
- - [setWorkspaceManager, ['@workspace.manager']]
- tags:
- - { name: workspace_negotiator, priority: 0 }
- workspace.negotiator.cron:
- class: Drupal\multiversion\Workspace\CronWorkspaceNegotiator
- arguments: ['@state']
- calls:
- - [setContainer, ['@service_container']]
- - [setCurrentUser, ['@current_user']]
- - [setWorkspaceManager, ['@workspace.manager']]
- tags:
- - { name: workspace_negotiator, priority: 100 }
- workspace.negotiator.session:
- class: Drupal\multiversion\Workspace\SessionWorkspaceNegotiator
- arguments: ['@user.private_tempstore']
- calls:
- - [setContainer, ['@service_container']]
- - [setCurrentUser, ['@current_user']]
- - [setWorkspaceManager, ['@workspace.manager']]
- tags:
- - { name: workspace_negotiator, priority: 200 }
- conflict.complexlca_resolver:
- class: Drupal\multiversion\Entity\Index\ComplexLcaResolver
- tags:
- - { name: lca_resolver, priority: 20 }
- multiversion.serializer.normalizer.workspace_reference_item:
- class: Drupal\multiversion\Normalizer\WorkspaceReferenceItemNormalizer
- tags:
- - { name: normalizer, priority: 50 }
- multiversion.alias_storage:
- decorates: 'path.alias_storage'
- class: Drupal\multiversion\AliasStorage
- arguments: ['@database', '@module_handler', '@workspace.manager', '@entity_type.manager', '@state']
- public: false
- decoration_priority: 50
- tags:
- - { name: backend_overridable }
- # The decorated service must remain public in order to not break views
- # (de-)serialization.
- # See https://www.drupal.org/project/multiversion/issues/2973609
- multiversion.route_provider:
- decorates: 'router.route_provider'
- class: Drupal\multiversion\RouteProvider
- arguments: ['@database', '@state', '@path.current', '@cache.data', '@path_processor_manager', '@cache_tags.invalidator', 'router', '@language_manager', '@workspace.manager']
- decoration_priority: 50
- tags:
- - { name: event_subscriber }
- - { name: backend_overridable }
- multiversion.node_revision_route_subscriber:
- class: Drupal\multiversion\EventSubscriber\NodeRevisionRouteSubscriber
- tags:
- - { name: event_subscriber }
- multiversion.menu_content_link_migrate_subscriber:
- class: Drupal\multiversion\EventSubscriber\MenuLinkContentMigrateSubscriber
- arguments: ['@database', '@plugin.manager.menu.link']
- tags:
- - { name: event_subscriber }
- multiversion.file_usage_migrate_subscriber:
- class: Drupal\multiversion\EventSubscriber\FileUsageMigrateSubscriber
- arguments: ['@database', '@module_handler']
- tags:
- - { name: event_subscriber }
- multiversion.search_api_migrate_subscriber:
- class: Drupal\multiversion\EventSubscriber\SearchApiMigrateSubscriber
- arguments: ['@module_handler', '@entity_type.manager']
- tags:
- - { name: event_subscriber }
- multiversion.pathauto_alias_subscriber:
- class: Drupal\multiversion\EventSubscriber\PathAutoAliasSubscriber
- arguments: ['@state']
- tags:
- - { name: event_subscriber }