larin: Блог

Главные вкладки

Кэш в файлах

20 июля 2008 в 6:35

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

Основные идеи:
1. Простота.
2. По возможности не дёргать БД. за счёт этого страница из кэша отдаётся в несколько сотен раз быстрее, чем обычная.
3. Кэшируем только анонимов. Если им разрешены постинги - будут проблемы.

Реализация:
1. Создать папку для кэша: mkdir /tmp/cache, chmod 777 /tmp/cache
2. В index.php, в самом начале, до bootstrap (<?phprequire_once './includes/bootstrap.inc';drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);?>) добавить:

<?php
Global $time1;
$time1 microtime(1);
 
function 
logcache($s) {
  Global 
$time1;
  
$log fopen("/var/log/drupal-cache.log"'a');
  
fwrite ($log$s.', ' . ((int)(1000*(microtime(1) - $time1))) . " ms used\n");
  
fclose ($log);
}
 
$req $_SERVER['REQUEST_URI'];
if (empty(
$_POST) && !isset($_COOKIE['drupal_uid']) && !strstr($req'/admin') && !strstr($req'AJAX')) { ?>