Кэширование

Модуль умеет взаимодействовать с кэшем установленным по умолчанию в платформе. По большей части кэширование необходимо использовать тогда, когда происходят выборки большого объема данных.

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

Взаимодействие с системным кэшем происходит за счет функции cache().

Внимание: если используется работа с кэшем, тогда не нужно забывать про его очистку, в случае изменения данных.

<?php
/**
 * Copyright (c) 2019 Denis Artamonov
 * Created: 2/16/19 5:23 PM
 * Author: Denis Artamonov
 *
 * Пример контроллера с методом
 * В котором выполняется некоторая логика выборки данных и проверки кэша
 */

namespace Artamonov\Rest\Controllers\Example;

class Cache
{
    public function check()
    {
        $response = [];
        // Отдадим данные из кэша если они в нем имеются
        // Иначе, получим данные из базы и запишем в кэш
        // $cacheId - уникальный идентификатор кэша
        // Срок кэша - 7 дней
        // Место хранения /bitrix/cache/example/check
        if (!$response = cache()->get($cacheId, 604800, 'example/check')) {
            // Какие-то данные из базы
            $arResult = [1, 2, 3];
            // Массив ответа для клиента
            $response = &$arResult;
            // Сохраняем данные в кэш чтобы при следующем запросе уже не делать запросы в базу
            if ($response) {
                cache()->set($response);
            }
        }
        // Возвращаем ответ клиенту
        response()->json($response);
    }
}

Last updated