Esli zhe ne planirujetsa ispolzovatj obhsee keshirovanije to keshirovanije otdelnogo modulja (esli ono voobshe nuzhno) polnostju lozhitsa na plechi razrabotchika dannogo modulja.
Primer mehanizma kak mi obichno realizovivajem keshirovanije modulja:
<?php
$file_with_cache = $_CFG['cache_directory'] . 'cache_of_category_' . $web->active_category . ".cache";
if (file_exists($file_with_cache)){
echo file_get_contents($file_with_cache);
} else {
$SQL_str = "SELECT what FROM db WHERE cond";
$sql_res = mysql_query($SQL_str);
while ($arr = mysql_fetch_assoc($sql_res)) {
$HTML .= $arr['something'];
}
echo $HTML;
file_put_contents($file_with_cache, $HTML);
}
?>
Chto takoje objekt $web mozhno prochitatj tut <CROSSLINK>.
Itak, princip krajne prost - esli fail kesha estj to mi prosto pokazivajem ego ne vipolnjaja nikakih operacij. Esli ego net to vipolnajem standarnije operacii po pokazu soderzhanija i zatem generirujem etot fail kesha.
Konechno esli sozdatj mehanizm v tochnosti kak mi pokazali to vsju ostavshujusja zhiznj vash modulj budet pokazivatj toljko odno i tozhe :) poetomu nuzhno libo realizovivatj mehanizm udalenija kesha cherez kakoje libo promezhutok vremeni libo mehanizm kotorij menjajet informaciju kotoruju vash modulj vivodit dolzhen etot kesh ubivatj pri izmenenii.
Estj eshe variant chto vi mozhete prisostatsa k taimeru kesha , ob etom mozno prochitatj tut <CROSSLINK>
Модули
Документы раздела