<?php 
 | 
/** 
 | 
 * PhalApi_Cache_Multi 组合模式下的多级缓存 
 | 
 * 
 | 
 * - 可以自定义添加多重缓存,注意优先添加高效缓存 
 | 
 * - 最终将委托给各级缓存进行数据的读写,其中读取为短路读取 
 | 
 * 
 | 
 * @package     PhalApi\Cache 
 | 
 * @license     http://www.phalapi.net/license GPL 协议 
 | 
 * @link        http://www.phalapi.net/ 
 | 
 * @author      dogstar <chanzonghuang@gmail.com> 2015-02-22 
 | 
 */ 
 | 
  
 | 
class PhalApi_Cache_Multi implements PhalApi_Cache { 
 | 
     
 | 
    protected $caches = array(); 
 | 
  
 | 
    public function addCache(PhalApi_Cache $cache) { 
 | 
        $this->caches[] = $cache; 
 | 
    } 
 | 
  
 | 
    public function set($key, $value, $expire = 600) { 
 | 
        foreach ($this->caches as $cache) { 
 | 
            $cache->set($key, $value, $expire); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    public function get($key) { 
 | 
        foreach ($this->caches as $cache) { 
 | 
            $value = $cache->get($key); 
 | 
            if ($value !== NULL) { 
 | 
                return $value; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return NULL; 
 | 
    } 
 | 
  
 | 
    public function delete($key) { 
 | 
        foreach ($this->caches as $cache) { 
 | 
            $cache->delete($key); 
 | 
        } 
 | 
    } 
 | 
} 
 |