Категория:
Опубликовано:
Как кешировать свои данные в Drupal 8
Все мы помним статейку от луллаботов про кеширование данных в 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;
}
Делитесь полезными материалами в социальных сетях.