Патч для кэширования пустых результатов запросов в Kohana
Простое исправление досадного недоразумения
Проблема: Kohana 3 (3.0.7, возможно, ранние версии) не может брать результаты запросов из кэша, если запрос вернул пустой результат.
Решение проблемы.
Разгадка кроется в файле modules/database/classes/kohana/database/query.php. Дело в том, что в PHP проверки вида if ($condition) возвращают false, если вычисленное значение $condition — 0, null, false, "", array(), ….
Поэтому в такой проверке:
{
// Return a cached result
return new Database_Result_Cached($result, $sql, $this->_as_object);
}
условие всегда будет ложно для пустых результатов.
Исправляется просто: из исходного кода Kohana::cache() видно, что Kohana::cache() возвращает null, если объект в кэше не найден либо произошла ошибка. Следовательно,
{
// Return a cached result
return new Database_Result_Cached($result, $sql, $this->_as_object);
}
даст корректный результат.
Автор: Wandering Soul; опубликовано в: Kohana; метки: Kohana, Kohana 3, база данных, кэшАвг
2010
Комментарии к статье «Патч для кэширования пустых результатов запросов в Kohana» (1) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «Патч для кэширования пустых результатов запросов в Kohana»
गते गते पारगते पारसंगते बोधि स्वाहा
Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.


Спасибо, как раз искал.