龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

缓存 一个简单的php缓存类

时间:2014-06-22 02:01来源:网络整理 作者:网络 点击:
分享到:
一个简单的php缓存类 [代码片段(49行)]
<?php
/**
 * Class Cache
 * 
 * @author Koen Ekelschot
 * @license WTFPL
 */
class Cache {

    private $cachedFile;

    public function __construct($identifier) {
        $this->cachedFile = ROOT.DS.'tmp'.DS.'cache'.DS.md5($identifier);
    }

    public function cacheExists($maxAge) {
        if (file_exists($this->cachedFile) && !is_dir($this->cachedFile)) {
            if (filemtime($this->cachedFile) + $maxAge > time()) {
                return true;
            } else {
                $this->invalidateCache();
            }
        }
        return false;
    }

    public function getCachedCopy() {
        $contents = file_get_contents($this->cachedFile);
        return unserialize(base64_decode($contents));
    }

    public function getCachedFilename() {
        return str_replace(ROOT, '', $this->cachedFile);
    }

    public function cacheResult($result) {
        if (file_exists($this->cachedFile) && !is_dir($this->cachedFile)) {
            $this->invalidateCache();
        }
        $base64 = base64_encode(serialize($result));
        file_put_contents($this->cachedFile, $base64);
    }

    private function invalidateCache() {
        unlink($this->cachedFile);
    }

}
?>
精彩图集

赞助商链接