RuCore.NET

Простое кэширования запросов





Класс довольно прост, все ее методы описаны в комментариях.

<?
class Cache {
private $file;
public function __construct($file) {



$this -> file = $file; // Путь к кешу

}

public function is_cache() {

return file_exists($this -> file); // проверка на существования кеша

}

public function create($arr) {

file_put_contents($this -> file,json_encode($arr)); // создание кеша

}

public function out() {

return json_decode(file_get_contents($this -> file),true); // Вывод кеша

}

static public function delete($file) {

return unlink($file); // удаление кеша

}

}
?>

Пример как его использовать:

<?
$cache = new Cache(‘sys/cache/Cache_Name.json’); // Устанавливаем путь к кешу
if (!$cache -> is_cache()) { //Проверка на существования кеша
$res = mysql_query(‘select * from TableName’);
$cn = mysql_fetch_assoc($res); // Запрос, который должен кешироваться
$cache -> create($cn); // Создание кеша, содержимое таблицы TableName будет записано в кеш
} else $cn = $cache -> out(); // Если есть кеш, то ее содержимое будет выведено
echo $cn[‘test’];
?>

Вот и весь код, ничего сложного нет.
Для удаления кеша нужно использовать метод delete.
Пример:

<?
$cache -> delete(‘ /*Путь к кешу */ ‘);
?>

Ее нужно использовать если содержимое таблицы были изменены, и кеш надо обновить



Поделись статьей с друзьями


56 просмотров



Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: