public function CachePluginBase::generateResultsKey

Calculates and sets a cache ID used for the result cache.

Return value

string The generated cache ID.

2 calls to CachePluginBase::generateResultsKey()
CachePluginBase::cacheGet in drupal/core/modules/views/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php
Retrieve data from the cache.
CachePluginBase::cacheSet in drupal/core/modules/views/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php
Save data to the cache.

File

drupal/core/modules/views/lib/Drupal/views/Plugin/views/cache/CachePluginBase.php, line 271
Definition of Drupal\views\Plugin\views\cache\CachePluginBase.

Class

CachePluginBase
The base plugin to handle caching.

Namespace

Drupal\views\Plugin\views\cache

Code

public function generateResultsKey() {
  global $user;
  if (!isset($this->resultsKey)) {
    $build_info = $this->view->build_info;
    foreach (array(
      'query',
      'count_query',
    ) as $index) {

      // If the default query back-end is used generate SQL query strings from
      // the query objects.
      if ($build_info[$index] instanceof Select) {
        $query = clone $build_info[$index];
        $query
          ->preExecute();
        $build_info[$index] = (string) $query;
      }
    }
    $key_data = array(
      'build_info' => $build_info,
      'roles' => $user->roles,
      'super-user' => $user->uid == 1,
      // special caching for super user.
      'langcode' => language(Language::TYPE_INTERFACE)->langcode,
      'base_url' => $GLOBALS['base_url'],
    );
    $request = \Drupal::request();
    foreach (array(
      'exposed_info',
      'page',
      'sort',
      'order',
      'items_per_page',
      'offset',
    ) as $key) {
      if ($request->query
        ->has($key)) {
        $key_data[$key] = $request->query
          ->get($key);
      }
    }
    $this->resultsKey = $this->view->storage
      ->id() . ':' . $this->displayHandler->display['id'] . ':results:' . hash('sha256', serialize($key_data));
  }
  return $this->resultsKey;
}