在我使用WordPress的时候,因为WordPress都是动态的,打开速度感人!为了优化速度,WordPress提供了为动态页面生成静态化的插件WP Super Cache插件,中文名叫超级缓存!
实际上,我们PHPCMS V9也有这样的功能,只是有BUG,使用不了,所以进行了修复,方法如下:
/phpcms/libs/functions/global.func.php文件里找到如下两个函数:
cache_page_start
cache_page
两个函数整体更换为:
/** * 读取缓存动态页面 */ function cache_page_start() { $relate_url = isset($_SERVER['REQUEST_URI']) ? safe_replace($_SERVER['REQUEST_URI']) : $php_self.(isset($_SERVER['QUERY_STRING']) ? '?'.safe_replace($_SERVER['QUERY_STRING']) : $path_info); define('CACHE_PAGE_ID', md5($relate_url)); $contents = getcache(CACHE_PAGE_ID, 'page_tmp'); if($contents && intval(substr($contents, 15, 10)) > SYS_TIME) { echo substr($contents, 29); exit; } if (!defined('HTML')) define('HTML',true); return true; } /** * 写入缓存动态页面 */ function cache_page($ttl = 360, $isjs = 0) { if($ttl == 0 || !defined('CACHE_PAGE_ID')) return false; $contents = ob_get_contents(); if($isjs) $contents = format_js($contents); $contents = "<!--expiretime:".(SYS_TIME + $ttl)."-->\n".$contents; setcache(CACHE_PAGE_ID, $contents, 'page_tmp'); }
这样就修复了动态页面缓存功能!使用方法如下:
cache_page_start();
模板引用函数
cache_page(120);
120为缓存有效期,单位为秒
比如在内容控制器/phpcms/modules/content/index.php里的show方法里找到
include template(‘content’,$template);
在其上面增加:
cache_page_start();
下面增加:
cache_page(120);
首次访问内容的动态地址,就会生成缓存文件,存放在/caches/caches_page_tmp文件夹里,再次访问,就先读取缓存了