99 lines
4.3 KiB
YAML
99 lines
4.3 KiB
YAML
services:
|
|
_defaults:
|
|
autoconfigure: true
|
|
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', '@workspaces.information']
|
|
tags:
|
|
- { name: service_id_collector, tag: workspace_negotiator }
|
|
Drupal\workspaces\WorkspaceManagerInterface: '@workspaces.manager'
|
|
workspaces.information:
|
|
class: Drupal\workspaces\WorkspaceInformation
|
|
arguments: [ '@entity_type.manager', '@workspaces.association' ]
|
|
Drupal\workspaces\WorkspaceInformationInterface: '@workspaces.information'
|
|
workspaces.operation_factory:
|
|
class: Drupal\workspaces\WorkspaceOperationFactory
|
|
arguments: ['@entity_type.manager', '@database', '@workspaces.manager', '@workspaces.association', '@event_dispatcher', '@logger.channel.workspaces']
|
|
Drupal\workspaces\WorkspaceOperationFactory: '@workspaces.operation_factory'
|
|
workspaces.association:
|
|
class: Drupal\workspaces\WorkspaceAssociation
|
|
arguments: ['@database', '@entity_type.manager', '@workspaces.repository', '@logger.channel.workspaces']
|
|
tags:
|
|
- { name: backend_overridable }
|
|
Drupal\workspaces\WorkspaceAssociationInterface: '@workspaces.association'
|
|
workspaces.repository:
|
|
class: Drupal\workspaces\WorkspaceRepository
|
|
arguments: ['@entity_type.manager', '@cache.default']
|
|
Drupal\workspaces\WorkspaceRepositoryInterface: '@workspaces.repository'
|
|
|
|
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.information']
|
|
workspaces.workspace_subscriber:
|
|
class: Drupal\workspaces\EventSubscriber\WorkspaceRequestSubscriber
|
|
arguments: ['@router.route_provider', '@workspaces.manager']
|
|
|
|
cache_context.workspace:
|
|
class: Drupal\workspaces\WorkspaceCacheContext
|
|
arguments: ['@workspaces.manager']
|
|
tags:
|
|
- { name: cache.context }
|
|
logger.channel.workspaces:
|
|
parent: logger.channel_base
|
|
arguments: ['workspaces']
|
|
|
|
workspaces.lazy_builders:
|
|
class: Drupal\workspaces\WorkspacesLazyBuilders
|
|
arguments: [ '@workspaces.manager', '@plugin.manager.element_info' ]
|
|
Drupal\workspaces\WorkspacesLazyBuilders: '@workspaces.lazy_builders'
|
|
|
|
workspaces.entity.query.sql:
|
|
decorates: entity.query.sql
|
|
class: Drupal\workspaces\EntityQuery\QueryFactory
|
|
arguments: ['@database', '@workspaces.manager', '@workspaces.information']
|
|
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', '@workspaces.information']
|
|
public: false
|
|
decoration_priority: 50
|
|
|
|
workspaces.menu.tree_storage:
|
|
decorates: menu.tree_storage
|
|
class: Drupal\workspaces\WorkspacesMenuTreeStorage
|
|
arguments: ['@workspaces.manager', '@workspaces.association', '@entity_type.manager', '@database', '@cache.menu', '@cache_tags.invalidator', 'menu_tree']
|
|
public: false
|
|
decoration_priority: 50
|
|
tags:
|
|
- { name: backend_overridable }
|
|
|
|
workspaces.controller.entity_form:
|
|
# Decorate the entity form controller to handle entity operations inside a
|
|
# workspace.
|
|
decorates: controller.entity_form
|
|
class: Drupal\workspaces\Controller\WorkspacesHtmlEntityFormController
|
|
public: false
|
|
arguments: ['@.inner', '@workspaces.manager', '@workspaces.information']
|
|
Drupal\workspaces\Controller\WorkspacesHtmlEntityFormController: '@workspaces.controller.entity_form'
|