系統預設的緩衝方式是採用File方式緩衝,我們可以在項目設定檔裡面定義其他的緩衝方式,例如,修改預設的緩衝方式為Xcache(當然,你的環境需要支援Xcache)
對於File方式緩衝下的緩衝目錄下面因為快取資料過多而導致存在大量的檔案問題,ThinkPHP也給出瞭解決方案,可以啟用雜湊子目錄緩衝的方式。
'DATA_CACHE_SUBDIR'=>true
還可以設定雜湊目錄的層次,例如
'DATA_PATH_LEVEL'=>2
就可以根據緩衝標識的雜湊自動建立多層子目錄來緩衝。
S方法支援緩衝有效期間,在很多情況下,可能我們並不需要有效期間的概念,或者使用檔案方式的緩衝就能夠滿足要求,所以系統還提供了一個專門用於檔案方式的快速緩衝方法F方法。F方法只能用於緩衝單一資料型別,不支援有效期間和緩衝對象,使用如下:
//快速緩衝Data資料,預設儲存在DATA_PATH目錄下面
F('data',$data);
//快速緩衝Data資料,儲存到指定的目錄
F('data',$data,TEMP_PATH);
F('user/data',$data);
//刪除快取資料
F('data',null);
//擷取快取資料
$data=F('data');
設定檔config.php
//動態緩衝,快取檔案存在於\Runtime\Temp
'DATA_CACHE_TYPE'=>'file',
'DATA_CACHE_TIME'=>'3600',
//'DATA_CACHE_SUBDIR'=>true,//開啟子目錄
//'DATA_CACHE_LEVEL'=>3,//設定子目錄的層次
Action檔案:
function view(){
//緩衝
//$cache=Cache::getInstance('緩衝方式','緩衝參數');
//$cache=Cache::getInstance('Xcache',array('expire'=>60));
//$cache->set('名字','值');或者$cache->name='值';
//$value=$cache->get('名字');或者$value=$cache->name;
//$cache->rm('名字');或者unset($cache->name);
//S('名字','資料','3600','類型')緩衝快捷方法
$user=M('haodetong');
$value=S('list');
if(empty($value)){
$list=$user->select();
S('list',$list,3600);
echo '這個是直接從資料庫中讀取的檔案';
dump($list);
}else{
echo '這個是快取檔案';
dump($value);
}
}
第一次訪問時如:
再次重新整理後如:
以上就介紹了ThinkPHP中的動態緩衝(S方法)和快速緩衝(F方法),包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。