У меня есть объект SettingsSiteTable со следующим методом чтения настроек в базе данных и сохранения результатов в кеше.
// GET ALL CONFIG SETTINGS
function getConfigs(){
if(($settings_site = Cache::read($this->key)) === false) {
$settings_site = $this->find('list', [
'keyField' => 'key',
'valueField' => 'value'
])->toArray();
Cache::write($this->key, $settings_site, 'settings');
}
return $settings_site;
} // END GET CONFIGS FUNCTION
Ключ $this-> — это «SettingsSite», и с этим, похоже, нет проблем. Я также добавил использование Cake\Cache\Cache в объектный файл таблицы.
Моя конфигурация кеша в файле app.php выглядит следующим образом:
'Cache' => [
'default' => [
'className' => 'File',
'path' => CACHE,
],
'settings' => [
'className' => 'File',
'duration' => '+6 hours',
'path' => CACHE . 'settings/',
],
'_cake_core_' => [
// ...
],
'_cake_model_' => [
// ...
],
],
Кэш вроде успешно сохраняется. Я могу просмотреть файл кеша, расположенный по адресу tmp/cache/settings/settings_site (не знаю, какое у файла расширение)
Однако, если я изменяю данные в базе данных и обновляю страницу, отображается обновленная информация, что означает, что она неправильно читает из кеша и повторно запрашивает результаты.
Что я делаю не так? Я получил этот код непосредственно из 3. X Cookbook: запись в кэш