Простое кеширование

xriby

Новичок
Простое кеширование

Читаю фак о кешировании:
http://phpclub.ru/faq/cahcing/CaptureServerSideOutputForCaching?v=stj
Там есть пример использвания буфера вывода для кеширрования
пример 5.3 - 5.6 (3.php)

Этот пример можно реализовать без использования буфера вывода, например, вот так:
PHP:
<?php

/**
* Запись кэш-файла
* @param string contents – содержание буфера
* @param string filename – имя файла, используемое при создании кэш-файла
* @return void
*/
function writeCache($content, $filename) {
	file_put_contents('./cache/' . $filename, $content);
}

/**
* Проверка кэш-файлов
* @param string filename – имя проверяемого кэш-файла
* @param int expiry – максимальный «возраст» файла в секундах
* @return mixed содержимое кэша или false
*/
function readCache($filename, $expiry) {
	if (file_exists('./cache/' . $filename)) {
		if ((time() - $expiry) > filemtime('./cache/' . $filename))
			return FALSE;
		$cache = file_get_contents('./cache/' . $filename);
		return $cache;
	}
	return FALSE;
}

// Обработка шапки
if (!$header = readCache('3_header.cache', 604800)) {
	$header = '
	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<title>Страница, кэшированная поблочно </title>
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
	</head>
	<body>
	Время создания шапки: ' . date('H:i:s') . '<br />';

    writeCache($header, '3_header.cache');
}

// Обработка тела страницы
if (!$body = readCache('3_body.cache', 5)) {
	$body = 'Время создания тела: ' . date('H:i:s') . '<br />';
    writeCache($body, '3_body.cache');
}

// Обработка нижнего колонтитула страницы
if (!$footer = readCache('3_footer.cache', 604800)) {
	$footer = 'Время создания нижнего колонтитула:' . date('H:i:s') .
		'<br />
		</body>
		</html>';
    writeCache($footer, '3_footer.cache');
}

// Выводим содержимое страницы
echo $header . $body . $footer;

?>
1. Я не врубаюсь в использовании буфера вывода при кешировании.
Чем тот пример отличается от моего?
Вообще к каких случаях использовать буфер?
2. Приведенный мной пример можно использовать для простого кеширования данных?
 

soines

Новичок
А почему при чтении указывается актуальность кеша? ИМХО логичнее указывать это при записи.
 

С.

Продвинутый новичок
Да ничем не отличается. Кроме того, что там можно использовать нормальные шаблоны с полноценным HTML, а у тебя только говно в кавычках.
 

xriby

Новичок
А можно пример как использовать шаблоны в том примере.
 
Сверху