services: workspaces.manager: class: Drupal\workspaces\WorkspaceManager arguments: ['@request_stack', '@entity_type.manager', '@entity.memory_cache', '@current_user', '@state', '@logger.channel.workspaces', '@class_resolver', '@workspaces.association'] tags: - { name: service_id_collector, tag: workspace_negotiator } workspaces.operation_factory: class: Drupal\workspaces\WorkspaceOperationFactory arguments: ['@entity_type.manager', '@database', '@workspaces.manager', '@workspaces.association', '@cache_tags.invalidator'] workspaces.association: class: Drupal\workspaces\WorkspaceAssociation arguments: ['@database', '@entity_type.manager', '@workspaces.repository'] tags: - { name: backend_overridable } workspaces.repository: class: Drupal\workspaces\WorkspaceRepository arguments: ['@entity_type.manager', '@cache.default'] workspaces.negotiator.session: class: Drupal\workspaces\Negotiator\SessionWorkspaceNegotiator arguments: ['@current_user', '@session', '@entity_type.manager'] tags: - { name: workspace_negotiator, priority: 50 } workspaces.negotiator.query_parameter: class: Drupal\workspaces\Negotiator\QueryParameterWorkspaceNegotiator parent: workspaces.negotiator.session tags: - { name: workspace_negotiator, priority: 100 } access_check.workspaces.active_workspace: class: Drupal\workspaces\Access\ActiveWorkspaceCheck arguments: ['@workspaces.manager'] tags: - { name: access_check, applies_to: _has_active_workspace } workspaces.entity_schema_listener: class: Drupal\workspaces\EventSubscriber\EntitySchemaSubscriber arguments: ['@entity.definition_update_manager', '@entity.last_installed_schema.repository', '@workspaces.manager'] tags: - { name: 'event_subscriber' } workspaces.workspace_subscriber: class: Drupal\workspaces\EventSubscriber\WorkspaceRequestSubscriber arguments: ['@path_alias.manager', '@path.current', '@router.route_provider', '@workspaces.manager'] tags: - { name: event_subscriber } cache_context.workspace: class: Drupal\workspaces\WorkspaceCacheContext arguments: ['@workspaces.manager'] tags: - { name: cache.context } logger.channel.workspaces: parent: logger.channel_base arguments: ['workspaces'] workspaces.entity.query.sql: decorates: entity.query.sql class: Drupal\workspaces\EntityQuery\QueryFactory arguments: ['@database', '@workspaces.manager'] public: false decoration_priority: 50 tags: - { name: backend_overridable } pgsql.workspaces.entity.query.sql: decorates: pgsql.entity.query.sql class: Drupal\workspaces\EntityQuery\PgsqlQueryFactory arguments: ['@database', '@workspaces.manager'] public: false decoration_priority: 50