В документации сказано, что в 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'),
],
],