<?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);
|
}
|
}
|
}
|