WorkspaceNegotiatorInterface.php

Same filename in other branches
  1. 8.9.x core/modules/workspaces/src/Negotiator/WorkspaceNegotiatorInterface.php
  2. 10 core/modules/workspaces/src/Negotiator/WorkspaceNegotiatorInterface.php
  3. 11.x core/modules/workspaces/src/Negotiator/WorkspaceNegotiatorInterface.php

Namespace

Drupal\workspaces\Negotiator

File

core/modules/workspaces/src/Negotiator/WorkspaceNegotiatorInterface.php

View source
<?php

namespace Drupal\workspaces\Negotiator;

use Drupal\workspaces\WorkspaceInterface;
use Symfony\Component\HttpFoundation\Request;

/**
 * Workspace negotiators provide a way to get the active workspace.
 *
 * \Drupal\workspaces\WorkspaceManager acts as the service collector for
 * Workspace negotiators.
 */
interface WorkspaceNegotiatorInterface {
    
    /**
     * Checks whether the negotiator applies to the current request or not.
     *
     * @param \Symfony\Component\HttpFoundation\Request $request
     *   The HTTP request.
     *
     * @return bool
     *   TRUE if the negotiator applies for the current request, FALSE otherwise.
     */
    public function applies(Request $request);
    
    /**
     * Gets the negotiated workspace, if any.
     *
     * Note that it is the responsibility of each implementation to check whether
     * the negotiated workspace actually exists in the storage.
     *
     * @param \Symfony\Component\HttpFoundation\Request $request
     *   The HTTP request.
     *
     * @return \Drupal\workspaces\WorkspaceInterface|null
     *   The negotiated workspace or NULL if the negotiator could not determine a
     *   valid workspace.
     */
    public function getActiveWorkspace(Request $request);
    
    /**
     * Sets the negotiated workspace.
     *
     * @param \Drupal\workspaces\WorkspaceInterface $workspace
     *   The workspace entity.
     */
    public function setActiveWorkspace(WorkspaceInterface $workspace);
    
    /**
     * Unsets the negotiated workspace.
     */
    public function unsetActiveWorkspace();

}

Interfaces

Title Deprecated Summary
WorkspaceNegotiatorInterface Workspace negotiators provide a way to get the active workspace.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.