最近在做一个小项目,利用到了Codeigniter 这个框架,主要是看重他小巧、方便、快捷,文档齐全。在MVC处理上十分灵活。尤其是model模型,与Zend_Db_Table相比虽然简化,但是十分方便。
codeigniter的功能纵然强大,也有不足之处。其cache模式在于针对不同的uri就会生成cache文件,如果URL中参数不同,则cache文件就会不同,从而产生了漏洞。如果访问者构建自动生成URI,不断向服务器发起请求,就会瞬间产生大量的垃圾文件,导致系统文件臃肿。
因此如果要用到cache功能就必须找到第三方的开发库。Pear中,Cache_Lite属于较为轻量级的缓存系统,且功能强大,可以作为CI原生cache的替代品,将其加入自定义的library文件即可完成。
步骤如下:
- 下载Cache_Lite
下载地址:http://download.pear.php.net/package/Cache_Lite-1.7.7.tgz
-
配置以及使用
解压缩后,将Cache_Lite.php和Lite文件夹复制到 system/application/libraries中。并在Cache_Lite.php中加入:if (!defined(’BASEPATH’)) exit(’No direct script access allowed’);
$ops = array( ‘cacheDir’ => BASEPATH.’/cache/’, //cache文件存储位置 ‘lifeTime’ => 3600, //cache的有效期 ); // ; $this->load->library(”Cache_Lite”,$ops,”cc”); //cc为Cache_Lite的别名
如:读取缓存:$string = $this->cc->get($id);
$this->cc->save($outputString);