artamonov.rest
На главнуюРазработчикМаркетплейсПоддержка
  • Обзор модуля
  • Начало работы
    • Схема работы
    • Многосайтовость
    • Проверка работы
  • Карты роутов
  • Функции и методы
    • Журналы
    • Кэширование
  • Контроллеры
    • Контроллеры {namespace}
    • Контроллеры {файлы}
  • Токены
  • REST-документация
  • Примеры запросов
    • Javascript
    • PHP
    • Роут-провайдер
Powered by GitBook
On this page
  1. Функции и методы

Кэширование

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

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

Взаимодействие с системным кэшем происходит за счет функции 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);
    }
}
PreviousЖурналыNextКонтроллеры

Last updated 1 year ago