function QueryArgsCacheContext::getContext

Same name in other branches
  1. 9 core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php \Drupal\Core\Cache\Context\QueryArgsCacheContext::getContext()
  2. 8.9.x core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php \Drupal\Core\Cache\Context\QueryArgsCacheContext::getContext()
  3. 11.x core/lib/Drupal/Core/Cache/Context/QueryArgsCacheContext.php \Drupal\Core\Cache\Context\QueryArgsCacheContext::getContext()

Overrides CalculatedCacheContextInterface::getContext

File

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

Class

QueryArgsCacheContext
Defines the QueryArgsCacheContext service, for "per query args" caching.

Namespace

Drupal\Core\Cache\Context

Code

public function getContext($query_arg = NULL) {
    if ($query_arg === NULL) {
        // All arguments requested. Use normalized query string to minimize
        // variations.
        $value = $this->requestStack
            ->getCurrentRequest()
            ->getQueryString();
        return $value !== NULL ? $value : '';
    }
    elseif ($this->requestStack
        ->getCurrentRequest()->query
        ->has($query_arg)) {
        $value = $this->requestStack
            ->getCurrentRequest()->query
            ->all()[$query_arg];
        if (is_array($value)) {
            return http_build_query($value);
        }
        elseif ($value !== '') {
            return $value;
        }
        return '?valueless?';
    }
    return '';
}

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