У меня есть запрос:
$q = TableRegistry::getTableLocator()->get('Tab1')->find('OneById',
['id' => 1])->cache(function (Query $q) {
return 'q' . md5(serialize($q->clause('where')));
}, 'cQuestions')->first();
cQuestions
- это моя пользовательская конфигурация кэша.
При каждом выполнении вышеуказанного запроса переменная $q
будет иметь новые значения из базы данных, несмотря на то, что результат анонимной функции одинаков; Кеш сбрасывается.
Когда я меняю анонимную функцию для установки ключа кеша, вот так:
function (Query $q) {
return 'qtest';
}
проблема со сбросом кеша исчезла.
Почему? Кеш ключей одинаков в обеих ситуациях.