phpcms的动态缓存函数,为动态页面提供静态缓存

在我使用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文件夹里,再次访问,就先读取缓存了

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《phpcms的动态缓存函数,为动态页面提供静态缓存》
文章链接:https://www.qqooo.cn/html/2119.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
本站资源均来源于网络,若侵犯您的权益,请来信 Feelym@88.com 删除!