В документации сказано, что в OctoberCMS доступно кеширование запросов к базе данных: https://octobercms.com/docs/database/query#caching-queries
У меня есть такой код в файле routes.php, генерирующий карту сайта:
use Octoclub\Tutorial\Models\Item;
use Octoclub\Tutorial\Models\Category;
Route::get('sitemap.xml', function () {
$categories = Category::all();
$items = Item::all();
return Response::view('octoclub.tutorial::sitemap', ['items' => $items, 'categories' => $categories])->header('Content-Type', 'text/xml');
});
Так как это карта сайта, то логично её кешировать хотя бы на сутки (1440 минут).
Как я понял, для кеширования мне нужно изменить так:
$categories = Category::remember(1440)->all();
$items = Item::remember(1440)->all();
Этого достаточно или теперь нужно находить запрос в кеше и изменить код чтобы выводилось из кеша?
В доке упомянут метод rememberForever, это наверное для извлечения. Но нет никаких примеров.
Можете показать как мне нужно правильно исправить код, чтобы запрос кешировался?
Возможно для кеширования нужно знать настройки из \config\cache.php, у меня они такие:
'default' => 'file',
'stores' => [
'database' => [
'driver' => 'database',
'table' => 'cache',
'connection' => null,
],
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache'),
],
],