av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

PHP模版引擎之Smarty的緩存操作技巧

我們知道PHP語言作為開源社區(qū)的一員,提供了各種模板引擎,如FastTemplate,Smarty,SimpleTemplate等,而Smarty是現(xiàn)在使用得比較多的PHP模板引擎,下面介紹Smarty的緩存操作技巧。

成都網(wǎng)站設(shè)計、做網(wǎng)站的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗。創(chuàng)新互聯(lián)多年互聯(lián)網(wǎng)經(jīng)驗,見的多,溝通容易、能幫助客戶提出的運營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇創(chuàng)新互聯(lián),不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價值服務(wù)。

一、使用緩存

要開啟smarty的緩存,只需將caching設(shè)為true,并指定cache_dir即可.

使用cache_lefetime指定緩存生存時間,單位為秒

要對相同頁面生成多個不同的緩存,在display或fetch中加入第二參數(shù)cache_id,如$smarty->display('index.tpl',$my_cache_id);此特性可用于對不同的$_GET進行不同的緩存

二、清除緩存

 
 
 
  1. clear_all_cache();//清除所有緩存
  2. clear_cache('index.tpl');//清除index.tpl的緩存
  3. clear_cache('index.tpl',cache_id);//清除指定id的緩存

三、使用自定義緩存方式

設(shè)置cache_handler_func使用自定義的函數(shù)處理緩存
如:

 
 
 
  1. $smarty->cache_handler_func = "myCache";
  2. function myCache($action, &$smarty_obj, &$cache_content, $tpl_file=null,
  3. $cache_id=null, $compile_id=null)
  4. {
  5. }

該函數(shù)的一般是根椐$action來判斷緩存當前操作:

 
 
 
  1. switch($action){
  2. case "read"://讀取緩存內(nèi)容
  3. case "write"://寫入緩存
  4. case "clear"://清空
  5. }

一般使用md5($tpl_file.$cache_id.$compile_id)作為唯一的cache_id

如果需要,可使用gzcompress和gzuncompress來壓縮和解壓

四、局部關(guān)閉緩存

要在某些區(qū)域使緩存失效(只對需要的緩存),有幾種方法:

insert:

定義一個insert標簽要使用的處理函數(shù),函數(shù)名格式為:

 
 
 
  1. insert_xx(array $params, object &$smarty)

其中的xx是insert的name,也就是說,如果你定義的函數(shù)為insert_abc,則模板中使用方法為

 
 
 
  1. {insert name='abc'}

參數(shù)通過$params傳入

也可以做成insert插件,文件名命名為:insert.xx.php,函數(shù)命名為:smarty_insert_aa($params,&$smarty),xx定義同上

register_block:

定義一個

 
 
 
  1. block:
  2. smarty_block_name($params,$content, &$smarty)
  3. {
  4. return $content;
  5. } //name表示區(qū)域名

注冊

 
 
 
  1. block:$smarty->register_block('name', 'smarty_block_name', false); 
  2. //第三參數(shù)false表示該區(qū)域不被緩存

模板寫法:{name}內(nèi)容{/name}

寫成block插件:

1)定義一件插件函數(shù):block.cacheless.php,放在smarty的plugins目錄

block.cacheless.php的內(nèi)容如下:

 
 
 
  1. function smarty_block_cacheless($param, $content, &$smarty) {
  2. return $content;
  3. }
  4. ?>

2) 編寫程序及模板

示例程序:testCacheLess.php

 
 
 
  1. include('Smarty.class.php');
  2. $smarty = new Smarty;
  3. $smarty->caching=true;
  4. $smarty->cache_lifetime = 6;
  5. $smarty->display('cache.tpl');
  6. ?>

所用的模板:cache.tpl

已經(jīng)緩存的

 
 
 
  1. {$smarty.now}
  2. {cacheless}

沒有緩存的:

 
 
 
  1. {$smarty.now}
  2. {/cacheless}

到這,就給大家介紹完了。建議大家看看這兩篇文章,《PHP模板之Smarty教程》和《詳細介紹PHP模板引擎Smarty》,供大家參考。


本文標題:PHP模版引擎之Smarty的緩存操作技巧
本文地址:http://uogjgqi.cn/article/dhejish.html
掃二維碼與項目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流