Категория:
Опубликовано:

Как кешировать свои данные в Drupal 8

Drupal 8 - Cache

Все мы помним статейку от луллаботов про кеширование данных в Drupal 7.

Если не читали / не пользовались - в ней рассказывается про то как можно закешировать свои данные в стандартном хранилище кеша Друпал.

Ниже будет описано как провернуть тоже самое в Drupal 8.

public function getMyCachedData() {
  $data = &drupal_static(__FUNCTION__);
  $cid  = 'myModule:cacheData';

  if ($cache = \Drupal::cache()->get($cid)) {
    $data = $cache->data;
  }
  else {
    $data = $this->getMyData();
    \Drupal::cache()->set($cid, $data, (time() + 60));
  }

  return $data;
}

Подробнее:

public function getMyCachedData() {

  // Обрабатываем все запросы метода "одним махом"
  $data = &drupal_static(__FUNCTION__);

  // Указываем ID кешированных данных (CID)
  $cid = 'myModule:cacheData';

  // Если данные в хранилеще есть..
  if ($cache = \Drupal::cache()->get($cid)) {

    // .. присваиваем данные переменной
    $data = $cache->data;
  }
  else {

    // .. иначе - генерируем данные
    $data = $this->getMyData();

    // и помещаем их в кеш на 1 минуту
    \Drupal::cache()->set($cid, $data, (time() + 60));
  }

  return $data;
}
Теги: 
Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.
Добавить комментарий