multiversion-8.x-1.0-beta34/multiversion.services.yml
multiversion.services.yml
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 }
