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


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

Для генерации страницы мы как правило задействуем не один php файл и еще обращаемся к базе данных, что влечет за собой нагрузку на сервер и увеличение времени генерации страницы сайта.

В общем все это вода вот сам вариант кеширования

#Присваиваем уникальное имя для фала с кешем 
#На основе URL 
$cache_name = md5($_SERVER['REQUEST_URI']);
#Проверяем есть ли данный файл на сервере 
if(!file_exists("$_SERVER[DOCUMENT_ROOT]/cache/$cache_name"))
{
   #Если файла с кешем нет то производим генерацию страницы
   ob_start(); #включает буферизацию вывода.

    # Здесь происходит генерация нашей страницы  
    
   #получает содержимое буфера вывода
   #и пишем результат в файл.
   $content = ob_get_contents();
   $fp = @fopen ("$_SERVER[DOCUMENT_ROOT]/cache/$cache_name", "w");
   @fwrite ($fp, $content);
   @fclose ($fp);
}else{
   #Если файл с кэшем есть то получаем его содержимое и выводим 
   $cache = file_get_contents("$_SERVER[DOCUMENT_ROOT]/cache/$cache_name");
   echo $cache;
}

Что бы все получилось для каталога cache не забываем дать права на запись.

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

#php

Copyright © 2013-2017