Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Кэширование данных в Yii 2

Кэширование данных

Кэширование данных заключается в сохранении некоторой переменной PHP в кэше и её последующем извлечении. Оно является основой для расширенных возможностей, таких как кэширование запросов и кэширование страниц.

Приведённый ниже код является типичным случаем кэширования данных, где $cache указывает на компонент кэширования:



// Пробуем извлечь $data из кэша.
$data = $cache->get($key);

if ($data === false) {
    // $data нет в кэше, вычисляем заново
    $data = $this->calculateSomething();

    // Сохраняем значение $data в кэше. Данные можно получить в следующий раз.
    $cache->set($key, $data);
}

// Значение $data доступно здесь.

Начиная с версии 2.0.11, компонент кэширования предоставляет метод [[yii\caching\Cache::getOrSet()|getOrSet()]], который упрощает код при получении, вычислении и сохранении данных. Приведённый ниже код делает в точности то же самое, что и код в предыдущем примере:

$data = $cache->getOrSet($key, function () {
    return $this->calculateSomething();
});

Если в кэше есть данные по ключу $key, они будут сразу возвращены. Иначе, будет вызвана переданная анонимная функция, вычисляющаяя значение, которое будет сохранено в кэш и возвращено из метода.

В случае, когда анонимной функции требуются данные из внешней области видимости, можно передать их с помощью оператора use. Например:

$user_id = 42;
$data = $cache->getOrSet($key, function () use ($user_id) {
    return $this->calculateSomething($user_id);
});

Note: В [[yii\caching\Cache::getOrSet()|getOrSet()]] можно передать срока действия и зависимости кэша. Прочтите Срок действия кэша и Зависимости кеша чтобы узнать больше.

Заберите ссылку на статью к себе, чтобы потом легко её найти ;)

Выберите, то, чем пользуетесь чаще всего:

Спасибо за внимание, оставайтесь на связи! Ниже ссылка на форум и обсуждение ; )


Обсудить эту статью

INFO: Вы отправляете сообщение как 'Гость'