You are here

public function CookiesCacheContext::getContext in Drupal 10

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Cache/Context/CookiesCacheContext.php \Drupal\Core\Cache\Context\CookiesCacheContext::getContext()
  2. 9 core/lib/Drupal/Core/Cache/Context/CookiesCacheContext.php \Drupal\Core\Cache\Context\CookiesCacheContext::getContext()

Returns the string representation of the cache context.

A cache context service's name is used as a token (placeholder) cache key, and is then replaced with the string returned by this method.

Parameters

string|null $parameter: The parameter, or NULL to indicate all possible parameter values.

Return value

string The string representation of the cache context. When $parameter is NULL, a value representing all possible parameters must be generated.

Throws

\LogicException Thrown if the passed in parameter is invalid.

Overrides CalculatedCacheContextInterface::getContext

File

core/lib/Drupal/Core/Cache/Context/CookiesCacheContext.php, line 26

Class

CookiesCacheContext
Defines the CookiesCacheContext service, for "per cookie" caching.

Namespace

Drupal\Core\Cache\Context

Code

public function getContext($cookie = NULL) {
  if ($cookie === NULL) {
    $cookies = $this->requestStack
      ->getCurrentRequest()->cookies
      ->all();

    // Sort the cookies by names, to always set the same context if the cookies
    // are the same but in a different order.
    ksort($cookies);

    // Use http_build_query() to get a short string from the cookies array.
    return http_build_query($cookies);
  }
  else {
    return $this->requestStack
      ->getCurrentRequest()->cookies
      ->get($cookie);
  }
}