$this->_tags=array(
'type'=>array('temp'=>CACHE_PATH.'type/'),
);每行定义一个缓存空间,这里定义了一个名为type的缓存空间,缓存文件统一保存在 /runtime/cache/type/目录中。MyCache('type')->set('typelist',$arr);直接可以在type缓存空间中设置一个名为typelist的缓存变量。当然,如果需要重复调用,你可以$cache=MyCache('type');
$cache->set('typelist',$arr);
$cache->get('typelist');你可以删除一个缓存通过$cache->rm('typelist');你可以清空缓存空间内的所有缓存$cache->clear();下面贴出代码:/**
* 缓存管理实例化
*/
function MyCache($tag){
import("ORG.MyCache",LIB_PATH);
$cache=MyCache::getInstance();
if(!$cache->choosetag($tag)){
echo $cache->getLastError();
return false;
}
return $cache;
}/Lib/ORG/MyCache.class.php<?php
/**
* 缓存管理器
*/
class MyCache {
private $CacheOBJ;//Cache核心类实例,单例
public $_tags=array();//缓存标签定义
public $errors=array();//错误
private function __construct() {
if(!($this->CacheOBJ instanceof Cache)){
$this->CacheOBJ=Cache::getInstance();
}
$this->_tags=array(
"Type"=>array("temp"=>CACHE_PATH.'Type/','expire'=>'3600')
);
}
//静态方法,用于获取缓存管理器实例
static function getInstance(){
static $mycache;
if(!is_object($mycache) || !($mycache instanceof self)){
$mycache=new self();
}
return $mycache;
}
function choosetag($tag=""){
if(!empty($tag) && !isset($this->_tags[$tag])){
$this->errors[]="未找到指定的{$tag}缓存空间!";
return FALSE;
}
$options = $this->_tags[$tag];
if (isset($options['temp']) && !is_dir($options['temp'])) {
if (!mkdir($options['temp'], "0777", true)) {
$this->errors[]="创建缓存目录{$options['temp']}失败,请检查PHP权限或者手动创建";
return false;
}
}
foreach ($options as $k => $v) {
$this->CacheOBJ->setOptions($k, $v);
}
return true;
}
function getLastError(){
return array_pop($this->errors);
}
//智能设定缓存空间参数
function __call($method, $arguments) {
return call_user_func_array(array($this->CacheOBJ,$method), $arguments);
}
}
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。