# 緩存
### 文件
libraries/Yf/Cache.php 負責初始化并存放所有的Cache類。
// cacah配置信息如下
```
<pre class="calibre14">```
<span class="token3">define</span><span class="token1">(</span><span class="token4">'CHE'</span><span class="token1">,</span> <span class="token6">1</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">true</span><span class="token1">)</span> <span class="token1">{</span>
<span class="token5">//cache配置參數</span>
<span class="token5">//require_once INI_PATH . '/cache.ini.php';</span>
$config_cache<span class="token1">[</span><span class="token4">'memcache'</span><span class="token1">]</span><span class="token1">[</span><span class="token4">'base'</span><span class="token1">]</span> <span class="token">=</span> <span class="token1">[</span>
<span class="token1">[</span>
<span class="token4">'139.196.6.92'</span> <span class="token">=</span><span class="token">></span> <span class="token4">'11211'</span>
<span class="token1">]</span><span class="token1">,</span>
<span class="token1">]</span><span class="token1">;</span>
$config_cache<span class="token1">[</span><span class="token4">'memcache'</span><span class="token1">]</span><span class="token1">[</span><span class="token4">'data'</span><span class="token1">]</span> <span class="token">=</span> <span class="token1">[</span>
<span class="token1">[</span>
<span class="token4">'139.196.6.92'</span> <span class="token">=</span><span class="token">></span> <span class="token4">'11211'</span>
<span class="token1">]</span><span class="token1">,</span>
<span class="token1">]</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//設置cache 參數</span>
<span class="token5">//cacheType 1:file 2:memcache 3:redis 4:apc 5:eA 6:xcache</span>
$config_cache<span class="token1">[</span><span class="token4">'default'</span><span class="token1">]</span> <span class="token">=</span> <span class="token1">[</span>
<span class="token4">'cacheType'</span> <span class="token">=</span><span class="token">></span> <span class="token6">1</span><span class="token1">,</span>
<span class="token4">'cacheDir'</span> <span class="token">=</span><span class="token">></span> APP_PATH <span class="token1">.</span> <span class="token4">'/data/cache/default_cache/'</span><span class="token1">,</span>
<span class="token4">'memoryCaching'</span> <span class="token">=</span><span class="token">></span> <span class="token6">false</span><span class="token1">,</span>
<span class="token4">'automaticSerialization'</span> <span class="token">=</span><span class="token">></span> <span class="token6">true</span><span class="token1">,</span>
<span class="token4">'hashedDirectoryLevel'</span> <span class="token">=</span><span class="token">></span> <span class="token6">2</span><span class="token1">,</span>
<span class="token4">'lifeTime'</span> <span class="token">=</span><span class="token">></span> <span class="token6">86400</span>
<span class="token1">]</span><span class="token1">;</span>
$config_cache<span class="token1">[</span><span class="token4">'base'</span><span class="token1">]</span> <span class="token">=</span> <span class="token1">[</span>
<span class="token4">'cacheType'</span> <span class="token">=</span><span class="token">></span> <span class="token6">1</span><span class="token1">,</span>
<span class="token4">'cacheDir'</span> <span class="token">=</span><span class="token">></span> APP_PATH <span class="token1">.</span> <span class="token4">'/data/cache/base_cache/'</span><span class="token1">,</span>
<span class="token4">'memoryCaching'</span> <span class="token">=</span><span class="token">></span> <span class="token6">false</span><span class="token1">,</span>
<span class="token4">'automaticSerialization'</span> <span class="token">=</span><span class="token">></span> <span class="token6">true</span><span class="token1">,</span>
<span class="token4">'hashedDirectoryLevel'</span> <span class="token">=</span><span class="token">></span> <span class="token6">2</span><span class="token1">,</span>
<span class="token4">'lifeTime'</span> <span class="token">=</span><span class="token">></span> <span class="token6">86400</span>
<span class="token1">]</span><span class="token1">;</span>
$config_cache<span class="token1">[</span><span class="token4">'data'</span><span class="token1">]</span> <span class="token">=</span> <span class="token1">[</span>
<span class="token4">'cacheType'</span> <span class="token">=</span><span class="token">></span> <span class="token6">1</span><span class="token1">,</span>
<span class="token4">'cacheDir'</span> <span class="token">=</span><span class="token">></span> APP_PATH <span class="token1">.</span> <span class="token4">'/data/cache/data_cache/'</span><span class="token1">,</span>
<span class="token4">'memoryCaching'</span> <span class="token">=</span><span class="token">></span> <span class="token6">false</span><span class="token1">,</span>
<span class="token4">'automaticSerialization'</span> <span class="token">=</span><span class="token">></span> <span class="token6">true</span><span class="token1">,</span>
<span class="token4">'hashedDirectoryLevel'</span> <span class="token">=</span><span class="token">></span> <span class="token6">2</span><span class="token1">,</span>
<span class="token4">'lifeTime'</span> <span class="token">=</span><span class="token">></span> <span class="token6">86400</span>
<span class="token1">]</span><span class="token1">;</span>
```
```
調用方法
1.緩存頁面
```
<pre class="calibre14">```
$Cache <span class="token">=</span> Yf_Cache<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span><span class="token4">'default'</span><span class="token1">)</span><span class="token1">;</span>
$site_index_key <span class="token">=</span> <span class="token3">sprintf</span><span class="token1">(</span><span class="token4">'%s|%s|%s'</span><span class="token1">,</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">get</span><span class="token1">(</span><span class="token4">'server_id'</span><span class="token1">)</span><span class="token1">,</span> <span class="token4">'site_index'</span><span class="token1">,</span> <span class="token3">isset</span><span class="token1">(</span>$_COOKIE<span class="token1">[</span><span class="token4">'sub_site_id'</span><span class="token1">]</span><span class="token1">)</span> <span class="token">?</span> $_COOKIE<span class="token1">[</span><span class="token4">'sub_site_id'</span><span class="token1">]</span> <span class="token1">:</span> <span class="token6">0</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span>$Cache<span class="token">-</span><span class="token">></span><span class="token3">start</span><span class="token1">(</span>$site_index_key<span class="token1">)</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token5">//其他頁面代碼。。。</span>
$Cache<span class="token">-</span><span class="token">></span>_id <span class="token">=</span> $site_index_key<span class="token1">;</span>
$Cache<span class="token">-</span><span class="token">></span><span class="token3">end</span><span class="token1">(</span>$site_index_key<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
```
```
2.緩存數據
```
<pre class="calibre14">```
$cache_group <span class="token">=</span> <span class="token4">'default'</span><span class="token1">;</span><span class="token5">//配置信息中的緩存key</span>
$Cache <span class="token">=</span> Yf_Cache<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span>$cache_group<span class="token1">)</span><span class="token1">;</span>
$key <span class="token">=</span> <span class="token4">''</span><span class="token1">;</span><span class="token5">//緩存key</span>
$data <span class="token">=</span> <span class="token4">''</span><span class="token1">;</span><span class="token5">//緩存數據</span>
$Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span>$data<span class="token1">,</span> $key<span class="token1">)</span><span class="token1">;</span><span class="token5">//保存緩存</span>
$Cache<span class="token">-</span><span class="token">></span><span class="token3">get</span><span class="token1">(</span>$key<span class="token1">,</span>$cache_group<span class="token1">)</span><span class="token1">;</span>
```
```
底層實現
```
<pre class="calibre15">```
public $_cacheKeyPrefix <span class="token">=</span> <span class="token4">'c|m|'</span><span class="token1">;</span>
public $_cacheName <span class="token">=</span> <span class="token4">'default'</span><span class="token1">;</span>
public $_tableName <span class="token">=</span> <span class="token4">'test'</span><span class="token1">;</span>
public $_tablePrimaryKey <span class="token">=</span> <span class="token4">'test_id'</span><span class="token1">;</span>
public $_cacheFlag <span class="token">=</span> <span class="token6">false</span><span class="token1">;</span>
<span class="token5">/**
* 取得
*
* @param array $id
*
* @return array $rows 信息
* @access protected
*/</span>
protected <span class="token2">function</span> <span class="token3">getCacheRow</span><span class="token1">(</span>$id <span class="token">=</span> <span class="token2">null</span><span class="token1">,</span> <span class="token">&</span>$need_cache_id_name<span class="token1">)</span>
<span class="token1">{</span>
<span class="token3">fb</span><span class="token1">(</span>$id<span class="token1">)</span><span class="token1">;</span>
$rows <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token3">is_array</span><span class="token1">(</span>$id<span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheFlag<span class="token1">)</span> <span class="token1">{</span>
$Yf_Cache <span class="token">=</span> Yf_Cache<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">)</span><span class="token1">;</span>
$cache_key <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
$cache_key_index <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
foreach <span class="token1">(</span>$id as $item<span class="token1">)</span> <span class="token1">{</span>
$cache_key<span class="token1">[</span><span class="token1">]</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $item<span class="token1">;</span>
$cache_key_index<span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $item<span class="token1">]</span> <span class="token">=</span> $item<span class="token1">;</span>
<span class="token1">}</span>
$rows_cache <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token5">//fix file cache</span>
$Yf_Registry <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">getInstance</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span><span class="token3">isset</span><span class="token1">(</span>$Yf_Registry<span class="token1">[</span><span class="token4">'config_cache'</span><span class="token1">]</span><span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">]</span><span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span>
$this<span class="token">-</span><span class="token">></span>_cacheName <span class="token">=</span> <span class="token4">'default'</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">1</span> <span class="token">==</span> $Yf_Registry<span class="token1">[</span><span class="token4">'config_cache'</span><span class="token1">]</span><span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">]</span><span class="token1">[</span><span class="token4">'cacheType'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span>
foreach <span class="token1">(</span>$cache_key as $key_id<span class="token1">)</span> <span class="token1">{</span>
$tmp_data <span class="token">=</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">get</span><span class="token1">(</span>$key_id<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">false</span> <span class="token">===</span> $tmp_data<span class="token1">)</span> <span class="token1">{</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
$rows_cache<span class="token1">[</span>$key_id<span class="token1">]</span> <span class="token">=</span> $tmp_data<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//end fix file cache</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
$rows_cache <span class="token">=</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">get</span><span class="token1">(</span>$cache_key<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
foreach <span class="token1">(</span>$cache_key as $val<span class="token1">)</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span><span class="token3">isset</span><span class="token1">(</span>$rows_cache<span class="token1">[</span>$val<span class="token1">]</span><span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span>
<span class="token3">array_push</span><span class="token1">(</span>$need_cache_id_name<span class="token1">,</span> $cache_key_index<span class="token1">[</span>$val<span class="token1">]</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
$rows <span class="token">=</span> $rows <span class="token">+</span> <span class="token1">(</span>array<span class="token1">)</span>$rows_cache<span class="token1">[</span>$val<span class="token1">]</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//fb($rows, "getCacheRow(" . encode_json($id) . ", " . encode_json($need_cache_id_name) . ")");</span>
<span class="token2">return</span> $rows<span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">/**
* 添加緩存,為多條記錄
*
* @param array $rows_db
*
* @return array $rows 信息
* @access protected
*/</span>
protected <span class="token2">function</span> <span class="token3">setCacheRow</span><span class="token1">(</span>$rows_db <span class="token">=</span> <span class="token2">null</span><span class="token1">,</span> $expire <span class="token">=</span> <span class="token2">null</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheFlag<span class="token1">)</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">false</span> <span class="token">!==</span> $rows_db<span class="token1">)</span> <span class="token1">{</span>
$Yf_Cache <span class="token">=</span> Yf_Cache<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">)</span><span class="token1">;</span>
foreach <span class="token1">(</span>$rows_db as $key <span class="token">=</span><span class="token">></span> $val<span class="token1">)</span> <span class="token1">{</span>
<span class="token5">//fix file cache</span>
$Yf_Registry <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">getInstance</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span><span class="token3">isset</span><span class="token1">(</span>$Yf_Registry<span class="token1">[</span><span class="token4">'config_cache'</span><span class="token1">]</span><span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">]</span><span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span>
$this<span class="token">-</span><span class="token">></span>_cacheName <span class="token">=</span> <span class="token4">'default'</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">1</span> <span class="token">==</span> $Yf_Registry<span class="token1">[</span><span class="token4">'config_cache'</span><span class="token1">]</span><span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">]</span><span class="token1">[</span><span class="token4">'cacheType'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span>
$Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span>$key <span class="token">=</span><span class="token">></span> $val<span class="token1">)</span><span class="token1">,</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $key<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
$Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span><span class="token3">array</span><span class="token1">(</span>$key <span class="token">=</span><span class="token">></span> $val<span class="token1">)</span><span class="token1">,</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $key<span class="token1">,</span> <span class="token2">null</span><span class="token1">,</span> <span class="token6">0</span><span class="token1">,</span> $expire<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">//end fix file cache</span>
<span class="token5">/*
$Yf_Cache->save(array($key=>$val), $this->_cacheKeyPrefix . $key, null, 0, $expire);
//$this->setCache(array($key=>$val), $this->_cacheKeyPrefix . $key);
*/</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">/**
* 取得單個緩存
*
* @param int $id id
*
* @return array $rows 信息
* @access protected
*/</span>
protected <span class="token2">function</span> <span class="token3">getCache</span><span class="token1">(</span>$id <span class="token">=</span> <span class="token2">null</span><span class="token1">)</span>
<span class="token1">{</span>
$rows <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheFlag<span class="token1">)</span> <span class="token1">{</span>
$Yf_Cache <span class="token">=</span> Yf_Cache<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span>$id<span class="token1">)</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token3">is_array</span><span class="token1">(</span>$id<span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span>
$cache_key <span class="token">=</span> <span class="token3">array</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
foreach <span class="token1">(</span>$id as $k <span class="token">=</span><span class="token">></span> $v<span class="token1">)</span> <span class="token1">{</span>
$cache_key<span class="token1">[</span><span class="token1">]</span> <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $v<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
$cache_key <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $id<span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
$cache_key <span class="token">=</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> <span class="token4">'all'</span><span class="token1">;</span>
<span class="token1">}</span>
$rows <span class="token">=</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">get</span><span class="token1">(</span>$cache_key<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token3">fb</span><span class="token1">(</span>$cache_key<span class="token1">,</span> <span class="token4">'getCache'</span><span class="token1">)</span><span class="token1">;</span>
<span class="token3">fb</span><span class="token1">(</span>$rows<span class="token1">)</span><span class="token1">;</span>
<span class="token2">return</span> $rows<span class="token1">;</span>
<span class="token1">}</span>
<span class="token5">/**
* 添加緩存,為單條記錄
*
* @param array $rows_db
*
* @return array $rows 信息
* @access protected
*/</span>
protected <span class="token2">function</span> <span class="token3">setCache</span><span class="token1">(</span>$rows_db<span class="token1">,</span> $key <span class="token">=</span> <span class="token2">null</span><span class="token1">,</span> $expire <span class="token">=</span> <span class="token2">null</span><span class="token1">)</span>
<span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheFlag<span class="token1">)</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">false</span> <span class="token">!==</span> $rows_db<span class="token1">)</span> <span class="token1">{</span>
$Yf_Cache <span class="token">=</span> Yf_Cache<span class="token1">:</span><span class="token1">:</span><span class="token3">create</span><span class="token1">(</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">)</span><span class="token1">;</span>
<span class="token5">//fix file cache</span>
$Yf_Registry <span class="token">=</span> Yf_Registry<span class="token1">:</span><span class="token1">:</span><span class="token3">getInstance</span><span class="token1">(</span><span class="token1">)</span><span class="token1">;</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token">!</span><span class="token3">isset</span><span class="token1">(</span>$Yf_Registry<span class="token1">[</span><span class="token4">'config_cache'</span><span class="token1">]</span><span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">]</span><span class="token1">)</span><span class="token1">)</span> <span class="token1">{</span>
$this<span class="token">-</span><span class="token">></span>_cacheName <span class="token">=</span> <span class="token4">'default'</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token2">if</span> <span class="token1">(</span><span class="token6">1</span> <span class="token">==</span> $Yf_Registry<span class="token1">[</span><span class="token4">'config_cache'</span><span class="token1">]</span><span class="token1">[</span>$this<span class="token">-</span><span class="token">></span>_cacheName<span class="token1">]</span><span class="token1">[</span><span class="token4">'cacheType'</span><span class="token1">]</span><span class="token1">)</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span>$key<span class="token1">)</span> <span class="token1">{</span>
<span class="token2">return</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span>$rows_db<span class="token1">,</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $key<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
<span class="token2">return</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span>$rows_db<span class="token1">,</span> <span class="token2">null</span><span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
<span class="token2">if</span> <span class="token1">(</span>$key<span class="token1">)</span> <span class="token1">{</span>
<span class="token2">return</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span>$rows_db<span class="token1">,</span> $this<span class="token">-</span><span class="token">></span>_cacheKeyPrefix <span class="token1">.</span> $key<span class="token1">,</span> <span class="token2">null</span><span class="token1">,</span> <span class="token6">0</span><span class="token1">,</span> $expire<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span> <span class="token2">else</span> <span class="token1">{</span>
<span class="token2">return</span> $Yf_Cache<span class="token">-</span><span class="token">></span><span class="token3">save</span><span class="token1">(</span>$rows_db<span class="token1">,</span> <span class="token2">null</span><span class="token1">,</span> <span class="token2">null</span><span class="token1">,</span> <span class="token6">0</span><span class="token1">,</span> $expire<span class="token1">)</span><span class="token1">;</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token5">//end fix file cache</span>
<span class="token1">}</span>
<span class="token1">}</span>
<span class="token1">}</span>
```
```
- 序言
- 系統要求
- 版本更新日志
- 遠豐商城技術對接說明
- 開發指導
- 框架內容
- 基礎
- 開發規范
- 目錄結構
- 架構
- 架構總覽
- 數據庫
- 數據庫連接
- 基本使用
- 緩存
- 配置
- 路由
- 數據字典
- ucenter
- shop
- paycenter
- ucenter_admin
- shop_admin
- paycenter_admin
- 通訊內容
- 商家中心
- 頂部導航欄
- 店鋪信息欄
- 店鋪及商品提示欄
- 交易提示欄
- 銷售情況統計欄
- 單品銷量排行欄
- 店鋪運營推廣欄
- 平臺聯系方式欄
- 訂單物流
- 商品
- 商品列表
- 商品詳情
- 商品發布與編輯
- 分銷商品
- 關聯版式
- 商品規格
- 圖片空間
- 淘寶導入
- 訂單流程
- 交易訂單
- 訂單退款/退貨
- 促銷
- 團購管理
- 加價購
- 限時折扣
- 滿即送
- 代金券管理
- 分銷
- 店鋪
- 店鋪設置
- 自銷產品供應商
- 實體店鋪
- 品牌申請
- 店鋪信息
- 消費者保障服務
- 門店賬號
- 分銷商--產品供應商
- 分銷明細
- 批發市場
- 售后服務
- 咨詢管理
- 投訴管理
- 退款管理
- 退貨管理
- 云方案架構
- 負載集群
- 云存儲
- 接口
- Api接口說明
- 品牌
- 商品規格
- 商品類型
- 商品分類
- 商品
- 訂單
- 商品/店鋪收藏
- 足跡
- 退款及退貨
- 商家店鋪
- 會員
- 入駐協議
- 訂單接口
- 商品接口
- 訂單物流接口
- 商家中心接口
- 促銷接口
- 快遞鳥物流接口
- 代金券接口
- 首頁版塊
- 團購
- 平臺紅包
- 限時折扣接口
- 拼團接口
- wap首頁模板
- 雜項
- 遠程上傳圖片
- JS
- 銀聯支付
- 多語言
- 商品評分
- 圖片加載
- 買家申請退款退貨
- 商家退款退貨
- 平臺退款退貨
- 添加發票
- 提交訂單
- 確認訂單
- 運費銷售區域
- 獲取會員地址
- 充值
- 導出XLS
- 商城系統集成
- 多語言實現
- 三級分銷推廣鏈接發展推廣員
- app.ini.php
- 去分銷
- 版本更新
- 物流支持
- 運營人員建議
- 業務邏輯
- 統計結算
- 客服消息
- 賬號
- 三級分銷
- IM
- 配置
- 平臺帳號
- 活動數據表說明