服务报价 | 域名主机 | 网络营销 | 软件工具| [加入收藏]
 热线电话: #
当前位置: 主页 > php教程 > OpenCart教程 >

详细分析OpenCart缓存功能介绍

时间:2016-02-10 21:11来源:未知 作者:最模板 点击:
OpenCart缓存分为两种,一种是文件缓存,即把需要缓存的内容写在一个文件中,需要读取缓存的时候就读该文件即可;另一种缓存是内存缓存,即把需要缓存的内容写在内存中,读写速

OpenCart缓存分为两种,一种是文件缓存,即把需要缓存的内容写在一个文件中,需要读取缓存的时候就读该文件即可;另一种缓存是内存缓存,即把需要缓存的内容写在内存中,读写速度都很快,常用的有Memcache等。

opencart 自带的有缓存类   /system/library/cache.php ,该缓存属于文件缓存

详细分析OpenCart缓存功能介绍

我们可以看到,设置的默认缓存时间是3600秒,也就是1小时,该类中提供了3个方法。set、get、delete,看到名称相信应该就知道是什么意思了。

设置缓存、获取缓存、删除缓存。缓存一般都是键值对,一个key对应一个value。所以我们只需要记住缓存的key,就可以获取到缓存的value。

 

下面用一个实际例子”缓存产品数量功能”,来介绍缓存如何使用。

32

oc对大数据量的支持不是很好,当产品数量过多的时候,很多人选择去掉了显示数量的功能。其实这里大家可以用下缓存功能。

 

首先我们找到头部文件(/catalog/controller/common/header.php),看下产品数量是在什么地方调用的。

33

在两层循环里面,有一个获取产品数量的方法。所以当数据量大的时候这里获取产品数量的方法就会很慢。

我们在这里把代码修改下,把categories缓存起来

详细分析OpenCart缓存功能介绍

加红线的就是我添加的缓存代码,下面介绍下实现原理。

首先查看缓存里面的key=common_header_categories有没有值,如果没有就去查询头部的导航、导航数量等信息,然后缓存使用set,把查询出来的结果缓存起来,最后赋值给$this->data['categories'];key=common_header_categories有值,那么就不去查询数据库,直接读取缓存的数据赋值给$this->data['categories']。

 

我们来测试下是否缓存成功

35

这里添加 echo “1″;正常情况是,刷新页面,第一次会显示出“1”,因为我们没有common_header_categories值的缓存;再刷新页面第二次,就不会出现“1”,因为我们已经有了缓存,所以就不会执行echo “1″ 这里的代码,直接显示缓存里的数据。我们看下测试结果

第一次刷新

36

第二次刷新

37

测试OK,说明已经缓存住了。我们的缓存文件放在什么地方呢?

38

 

在程序中很多地方都可以用到缓存,头部分类、左侧分类、获取产品等,修改原理和我这个一样

(责任编辑:最模板)
顶一下
(6)
100%
踩一下
(0)
0%
------分隔线----------------------------