PHPファイルキャッシュクラス

3231 ワード

最近プロジェクトデータベースの量はますます大きくなって、直接DBを調べる方式はすでに需要を満たすことができなくて、既成のキャッシュツールはmemcached、redisがあって、しかし今日自分でファイルキャッシュクラスを書いて、わずか数行のコードは需要を満たすことができます.コードは次のとおりです.
Class FileCache{
    Public function cache($filename, $expire, $table, $sql){
        //      ,     
        if (file_exists($filename)) {
            //     ,     
            if ((time() - filemtime($filename)) > $expire) {
                //  DB  
                //              ,      
                $data = array('table' => $table, 'sql' => $sql);
                file_put_contents($filename, serialize($data));
                return $data;
            }else{
                return unserialize(file_get_contents($filename));
            }
        }else{
            //  DB  
            //              ,      
            $data = array('table' => $table, 'sql' => $sql);
            file_put_contents($filename, serialize($data));
            return $data;
        }
    }
}

$table = 'user';
$sql = 'select * from user';
$cache = new FileCache;
$text = $cache->cache('cache/cache_2', 3, $table, $sql);
print_r($text);