您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何下載與配置Smarty,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
下載與配置
官方下載:Smarty Download
下載完后,解壓到自己項目的文件目錄下。
代碼如下:
注意:如果你發(fā)現(xiàn)緩存文件每次瀏覽都會發(fā)生改變,請看 Smarty的 force_compile , 它會強迫Smarty每次調(diào)用(重新)編譯模板。這項設置不受$compile_check的限制。默認情況下,它是無效的。它對于開發(fā)和調(diào)試很方便.但它決不能使用于產(chǎn)品環(huán)境下.如果啟動了緩存,每次將會重新生成緩存文件.
$smarty->force_compile = false; //強迫編譯
Smarty 緩存技術
全局緩存
局部緩存
insert 法
動態(tài) block 法
插件 block 法
全局緩存技術
顧名思義,全局緩存就是把整個頁面生成緩存文件,指定該緩存文件的存活時間,在指定時間內(nèi)再次瀏覽整個頁面,將直接讀取緩存文件。
注意:一個模板只能有一個緩存文件,如果您的模板存在多個頁面的話,就要為緩存 設置一個ID。 例如一個頁面有多個文章:
http://website/index.php?p=1
http://website/index.php?p=2
重點:使用緩存技術,很大一個原因就是為了減少對數(shù)據(jù)庫的讀寫,所以我們要用$smarty->isCached('index.tpl')來判斷緩存是否存在,如果存在了就不要再次操作數(shù)據(jù)庫。
這里又有問題了,如果我改了數(shù)據(jù)庫的某個內(nèi)容,想更新顯示內(nèi)容,但是緩存又還沒到消亡時間,那該腫么辦呢?
$smarty->clearCache("index.tpl");
上面的clearCache可以解決這個問題,只要更新了數(shù)據(jù)后,調(diào)用clearCache清除一下緩存就可以了。
PS:我用的是Smarty3版本,這個版本很多方法的命名都發(fā)生變化了,如果是Smarty2的話會出現(xiàn)“Call of unknown method ‘isCached'.”,請使用$smarty->is_cached()。
后面出現(xiàn)的 Smarty3:registerPlugin(), Smarty2:register_block() 也一樣是版本的問題。
下面我們來看一下有緩存和沒緩存的速度比較:
1.首次瀏覽,沒有緩存 Total Time 0.01421
2.第2次瀏覽,有緩存 Total Time 0.00308
這里我的index.php里只有幾行代碼,如果數(shù)據(jù)量大的話,就有明顯的區(qū)別。
局部緩存技術
局部緩存 = 部分緩存, 就是一個頁面的緩存中,并不是全都生成緩存,可以自定義設置某個功能模塊不生成緩存,每次瀏覽都會更新數(shù)據(jù);
例如:網(wǎng)頁顯示用戶的狀態(tài)、網(wǎng)頁的統(tǒng)計數(shù)據(jù)、廣告條等,這些數(shù)據(jù)的更新速度都非???,不宜緩存,這樣,局部緩存便有用武之地了。
局部緩存有3個方法:
一、insert法
insert 所包含的內(nèi)容不會被緩存,每次調(diào)用該模板都會重新執(zhí)行該函數(shù).
使用方法:
注意這里的函數(shù)名一定要以insert開頭,模板中的name與之對應。
index.php
index.tpl
nocache:<?php echo insert_get_current_time(array (
),$_smarty_tpl);?>
cache: 2012-06-04 15:46:52
開始有提到過,Smarty3是用registerPlugin , Smarty2則是用register_block
index.tpl
{nocache}{$date}{/nocache}
然后看緩存文件 , 得出結論每次調(diào)用該模板都會重新執(zhí)行$date
[/code]
<?php echo $_smarty_tpl->tpl_vars['date']->value;?>
<?php
function smarty_block_nocache($param, $content, $smarty)
{
return $content;
}
?>
[code]
tpl模板中的使用和第二個方法一樣
關于如何下載與配置Smarty就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。