Кеширование данных осуществляется в формате .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 конкретного контейнера.