Задать вопрос
BadassRolf
@BadassRolf

Как кэшировать данные в Yii2?

Написал свой класс с выведением определенных данных из таблицы.
Как теперь их в этом же классе можно закэшировать и выводить с ключом?
Почитал документацию, не понял ничего.
Вроде нужно настроить компонент cache и выставить класс yii\caching\DbCache.
В итоге вообще запутался.
  • Вопрос задан
  • 985 просмотров
Подписаться 1 Оценить Комментировать
Ответ пользователя Денис Шевченко К ответам на вопрос (3)
densisss
@densisss
Веб-разработчик.
Кэш вы можете использовать любого вида (File, DB, Memcached, Redis...). По умолчанию используется файловый кэш, для DB кэша нужно создавать таблицу в БД.

Пример кеша в view:
<?php if ($this->beginCache('_header')): ?>
    <header></header>
<?php
    $this->endCache();
endif;
?>


Пример в коде:
$response = \Yii::$app->cache->getOrSet('categoriesFilterHierarchy', function () { //ищу в кэше переменную с ключом 'categoriesFilterHierarchy', если не нахожу, то обращаюсь в БД и кеширую на 600 секунд 
            $categories = self::find()->orderBy('place ASC')->all();
            return $categories;
        },600);
Ответ написан