Rudra FrameworkRudra Framework

Кеширование данных осуществляется в формате .json

Пример запроса указанного в репозитории:

public static function test()
{
    $qString = QBFacade::select('id, title', 'created_at')
        ->from(self::$table)
        ->where(':id')
        ->or(':created_at')
        ->limit('10')
        ->get();

    return Test::qBuilder($qString, [
        ':id'		  => '1',
        ':created_at' => '2022-02-23 14:36:06'
    ]);
}

Первый параметр массива говорит об имени файла кэша, файл обновляется в зависимости от параметра 'cache.time':

Test::qCache(['test']);

Для динамически изменяющихся данных:

Test::qCache(["test_{$slug}"]);

Время периодичности кэширования по умолчанию указывается в файле конфигурации app/Ship/Config/local.php для локальной разработки app/Ship/Config/production.php для публичного размещения:

'cache.time' => 'now',

Время периодичности кэширования можно передать вторым параметром:

Test::qCache(['test'], '+1 day');

Для динамически изменяющихся данных:

Test::qCache(["test_{$slug}"], '+1 day');

Пример запроса с параметрами:

public static function test($id, $createdAt)
{
    $qString = QBFacade::select('id, title', 'created_at')
        ->from(self::$table)
        ->where(':id')
        ->or(':created_at')
        ->limit('10')
        ->get();

    return Test::qBuilder($qString, [
        ':id'		  => $id,
        ':created_at' => $createdAt
    ]);
}

Параметры передаются вторым элементом массива в виде массива:

Test::qCache(['test', [1, '2022-02-23 14:36:06']], '+30 minutes');

Для динамически изменяющихся данных:

Test::qCache(["test_{$slug}", [1, '2022-02-23 14:36:06']], '+30 minutes');

Кэш сохраняется в папке Models/cache  конкретного контейнера.