Модуль умеет взаимодействовать с кэшем установленным по умолчанию в платформе. По большей части кэширование необходимо использовать тогда, когда происходят выборки большого объема данных.
При работе с кэшем необходимо придерживать следующей логики: сначала проверяем наличие необходимого кэша, если его нет, тогда создаем его. В следующий раз, данные уже будут подгружаться из кэша.
Взаимодействие с системным кэшем происходит за счет функции 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);
}
}