Может кому-нибудь пригодится, класс для кэширования php-скриптов:
<?
class cache {
var $cache_cont; //Кэшируемый
контент
var $cache_url; //Адрес для
сохраниения кэшированых файлов
var $time_diff; //Через какой
промежуток времени кэшировать
var $its_all_cache_ok;
var $fullpath;
function CacheGo($urlsite,$time_for_cache,$path) {
$this->cacheurl="cache_".md5($urlsite);
$this->fullpath=$path.$this->cacheurl;
$this->time_diff = time()-@
filemtime ($this->fullpath);
if ($this->time_diff < $time_for_cache){
include ($this->fullpath);
$this->its_all_cache_ok=1;
}
}
function CacheInitial() {
ob_start();
}
function CacheClr() {
ob_end_clean();
}
function CacheGet () {
$this->cache_cont = ob_get_contents();
return $this->cache_cont;
}
function CacheInpAndWr() {
echo $this->cache_cont;
$fp = Удалён ($this->fullpath, "w" //Открываем файл на
запись
Удалён ($fp, $this->cache_cont);//Записываем кешируемую
информацию в файл
Удалён ($fp); //Закрываем
файл
}
}
?>
Использование:
Вместо <?php
include 'sidebar.php';
?>
Пишем
<?php
$cl_cache = new cache();//Кэширование бокового сайдбара
$cl_cache->CacheGo($_SERVER['REQUEST_URI'], 3600, rtrim($_SERVER['DOCUMENT_ROOT'],'/')."/cache/"
if ($cl_cache->its_all_cache_ok !=1) {
$cl_cache->CacheInitial();
include 'sidebar.php';
$cl_cache->CacheGet();
$cl_cache->CacheClr();
$cl_cache->CacheInpAndWr ();
}
unset($cl_cache);
?>
В функцию CacheGo мы передаем три параметра:
Первый параметр – текущая
(кэшируемая) страница, или другой любой уникальный идентификатор для данного кэша. К примеру можно взять
не только текущий адрес (URL), но и например текущий раздел. Если этот блок одинаковый для всех страниц, то просто пропишите название раздела, например «main_content».
Второй — время в секундах, на какое мы закэшируем блок. 3600 секунд это один час.
Третий — Путь, где будет храниться кэш вывода скрипта.
Не забудьте поставить права на папку 777.
После кеширования можете забыть об оптимизации скрипта..на время. Надеюсь этот класс окажется для вас полезным.
Изучение хабровских публикаций. Мне до строгого ООП ещё долго.
статьи давнешние) по var заметно
просто код адаптирован под работу под старыми пхп версиями
var новыми php версиями не будет поддерживаться
не неси бред, всё норм
Да, код УГ.
1. var - древне
2. Имена свойств и методов
3. @ - не нужно так делать
4. Читабельность Уг, советую познакомиться с PSR