В продолжение темы о кешировании блоков для системы slaed cms.
Плюсы:
Минимум изменнений в движке
Уменьшение скорости генерации страниц сайта
Уменьшение нагрузки на сервер
Минусы:
Думаю нет минусов )
Совместимость со всеми версиями слаед при наличии папки config/cache с правами 777
В файл function/function.php добавляем три новые функции:
Пример кеширования для блока block-news.php
Далее в файле modules/news/admin/index.php в функции function news_save
Над строкой
Вставляем
Или удаляем все из папки config/cache
Итог: -1 запрос к DB
Источник http://pro-script.ru/index.php?name=news&op=view&id=406
Плюсы:
Минимум изменнений в движке
Уменьшение скорости генерации страниц сайта
Уменьшение нагрузки на сервер
Минусы:
Думаю нет минусов )
Совместимость со всеми версиями слаед при наличии папки config/cache с правами 777
В файл function/function.php добавляем три новые функции:
/* запись кеширования html*/ function create_cache($prefix, $cache_text) { $filename = "config/cache/".$prefix.".tmp"; $fp = fopen( $filename, 'wb+' ); fwrite( $fp, $cache_text ); fclose( $fp ); @chmod( $filename, 0666 ); return FALSE; } /* вызов кеширования html*/ function call_cache($prefix) { $filename = "config/cache/".$prefix .".tmp"; if(file_exists($filename))return @file_get_contents( $filename ); return FALSE; } /* удалнение кеша*/ function clear_cache($cache_area = false) { $fdir = opendir('config/cache' ); while ( $file = readdir( $fdir ) ) { if( $file != '.' and $file != '..' and $file != '.htaccess') { if( $cache_area ) { if( strpos( $file, $cache_area ) !== false ) @unlink( 'config/cache/'. $file ); } else { @unlink( 'config/cache/'. $file ); }}} closedir($fdir);}
Пример кеширования для блока block-news.php
<?php # Copyright © 2005 - 2011 SLAED # Website: http://www.slaed.net if (!defined("BLOCK_FILE")) { header("Location: ../index.php"); exit; } /* Начало изменений */ $content = call_cache("block-news");//вызов кеша //если нет кеша создам новый if(!$content){ /* конец изменений */ global $prefix, $db; $strip = 25; $result = $db->sql_query("SELECT sid, title FROM ".$prefix."_news WHERE time <= now() AND status!='0' ORDER BY time DESC LIMIT 5"); while(list($sid, $title) = $db->sql_fetchrow($result)) { $linkstrip = cutstr($title, $strip); $content .= "<table cellspacing=\\"0\\" cellpadding=\\"1\\" border=\\"0\\"><tr><td><img src=\\"".img_find("all/news.png")."\\" title=\\"".$title."\\"></td><td><a href=\\"news-view-.html".$sid."\\" title=\\"".$title."\\">".$linkstrip."</a></td></tr></table>"; } /* Начало изменений */ //записываем в кеш create_cache("block-news",$content); } /* Начало изменений */ ?>
Далее в файле modules/news/admin/index.php в функции function news_save
Над строкой
header("Location: ".$admin_file.".php?op=news");
Вставляем
clear_cache("block-news");//удаляем кеш только для блока block-news.php
Или удаляем все из папки config/cache
clear_cache();
Итог: -1 запрос к DB
Источник http://pro-script.ru/index.php?name=news&op=view&id=406