1 <?php
2 /**
3 * @desc 文件缓存
4 */
5 class Cache{
6 const C_FILE = '/Runtime/';
7 private $dir = '';
8 const EXT = '.tpl';
9 private $filename = '';
10 public function __construct($dir = ''){
11 $this->dir = $dir;
12
13 }
14 /**
15 * @desc 设置文件缓存
16 * @param string $key 文件名
17 * @param unkonw $data 缓存数据
18 * @param int $expire 过期时间
19 */
20 public function set($key,$data,$expire = 0){
21 $this->filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
22 if(file_exists($this->filename)){
23 $res = $this->get($key);
24 if(md5($res) == md5(json_encode($data) ) ){
25 return true;
26 }
27 }
28 if(!is_dir(dirname($this->filename))){
29 mkdir(dirname($this->filename),0777);
30 }
31
32 $source = fopen($this->filename,'w+');
33 fwrite($source,json_encode($data));
34 fclose($source);
35 }
36
37 /**
38 * @desc 获取文件
39 * @param string $key 文件名
40 */
41 public function get($key){
42 //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
43 if(!file_exists($this->filename)){
44 return '缓存文件已经不存在';
45 }else{
46 $res = file_get_contents($this->filename);
47 }
48 return $res;
49 }
50 /**
51 * @desc 删除文件
52 * @param string $key 文件名
53 */
54 public function del($key){
55 unlink($this->filename);
56 }
57
58 }
59
60 $data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana'));
61 $cache = new Cache();
62 $cache->set('cache',$data);
63 //$cache->get('cache');
64 //$cache->del('cache');