php编写静态缓存类

静态缓存是保存在磁盘上的静态文件,用php生成数据放入静态文件中:
以下是对静态缓存,创建,读取,删除的操作类

/**
* php操作缓存:生成缓存,获取缓存,删除缓存
*/
class File
{

    private $_dir;
    const EXT = '.txt';
    public function __construct() {
        $this->_dir = dirname(__FILE__).'/files/';
    }
    public function cacheData($key, $value = '', $path = '') {
        $filename = $this->_dir.$path.$key.self::EXT;
        if ($value !=='') {//将value值写入缓存文件
            //删除缓存
            if (is_null($value)) {
                return @unlink($filename);
            }
            $dir = dirname($filename);
            if (!is_dir($dir)) {
                mkdir($dir,0777);
            }
            //value只能是字符串形式,不能传递数组,对象,如果写入成功返回的是数据字节数,如果失败返回false
            return file_put_contents($filename, json_encode($value)); 
        }

        //获取缓存
        if (!is_file($filename)) {
            return FALSE;
        } else {
            return json_decode(file_get_contents($filename),true);
        }
    }
}

调用方式:

require_once('./file.php');
$data = array(
    'id' => 1,
    'name' => 'donglianyou',
    'type' => array(4,5,6),
    'test' => array(1,34,65=>array(123,'good'),),
);
//Response::show(200, 'success', $data, 'json');
$file = new File();

//写入缓存到文件中:
if ($file->cacheData('array_cache',$data)) {
    echo "success";
} else {
    echo "error";
}
//读取缓存:
if ($file->cacheData('array_cache')) {
    echo "<pre>";
    var_dump($file->cacheData('array_cache'));
    echo "success";
} else {
    echo "error";
}

//删除缓存:
if ($file->cacheData('array_cache',null)) {
    echo "success";
} else {
    echo "error";
}
0
如无特殊说明,文章均为本站原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到