<?php
namespace lib;
/**
* 缓存
* @version 1.0.0
*/
class cache
{
    public $dir;
	public function __construct($dir='')
    {
        if($dir=='') $dir = \mvc::$cfg['dir']['cache'];
        mkdirs($dir);
        $this->dir = $dir;
    }   
    
    public function get($key,$time){
        $filename = $this->dir .'/'.$key;
        if($filetime = @filemtime($filename)){
            if($filetime*1 > (time() - $time*1)){
                return unserialize(file_get_contents($filename));
            }
        }
        return false;
    }
    
    public function set($key,$data){
        file_put_contents($this->dir .'/'.$key, serialize($data));
        return true;
    }
    
	function cacheKeyValue($key,$time,$function){
	    $data = [];
        if($data = $this->get($key,$time)){
           ;
        }else{
            $rows = $function();
            $data = [];
            foreach($rows as $row){
                $data[$row['key']] = $row['value'];
            }
            $this->set($key,$data);
        }
        return $data;
	}
    
}