簡述:
Smarty是一個使用PHP寫出來的模板引擎,是目前業界最著名的PHP模板引擎之一。它分離了邏輯代碼和外在的內容,提供了一種易於管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。
簡單的講,目的就是要使PHP程序員同前端人員分離,使程序員改變程序的邏輯內容不會影響到前端人員的頁面設計,前端人員重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯的尤為重要。
優點:
1. 速度:采用Smarty編寫的程序可以獲得最大速度的提高,這一點是相對於其它的模板引擎技術而言的。
2. 編譯型:采用Smarty編寫的程序在運行時要編譯成一個非模板技術的PHP文件,這個文件采用了PHP與HTML混合的方式,在下一次訪問模板時將WEB請求直接轉換到這個文件中,而不再進行模板重新編譯(在源程序沒有改動的情況下)
3. 緩存技術:Smarty選用的一種緩存技術,它可以將用戶最終看到的HTML文件緩存成一個靜態的HTML頁,當設定Smarty的cache屬性為true時,在Smarty設定的cachetime期內將用戶的WEB請求直接轉換到這個靜態的HTML文件中來,這相當於調用一個靜態的HTML文件。
4. 插件技術:Smarty可以自定義插件。插件實際就是一些自定義的函數。
5. 模板中可以使用if/elseif/else/endif。在模板文件使用判斷語句可以非常方便的對模板進行格式重排。
不適合使用Smarty的地方:
1、需要實時更新的內容。例如像股票顯示,它需要經常對數據進行更新,這類型的程序使用smarty會使模板處理速度變慢。
2、小項目。小項目因為項目簡單而美工與程序員兼於一人的項目,使用Smarty會在一定程度上喪失PHP開發迅速的優點。
(PS:不過為了整個項目的規范,請大家嘗試去使用模板引擎。其實習慣了,開發速度會更加快,以上是沒有用習慣模板引擎的開發者遇到的問題)
smarty的程序設計部分:
<?php include_once("./Smarty/Smarty.class.php"); //包含smarty類文件
$smarty = new Smarty(); //建立smarty實例對象$smarty $smarty->templates("./templates"); //設置模板目錄 $smarty->templates_c("./templates_c"); //設置編譯目錄 $smarty->cache("./cache"); //緩存目錄 $smarty->cache_lifetime = 0; //緩存時間 $smarty->caching = true; //緩存方式 $smarty->left_delimiter = "{#"; $smarty->right_delimiter = "#}"; $smarty->assign("name", "zaocha"); //進行模板變量替換 $smarty->display("index.htm"); //編譯並顯示位於./templates下的index.htm模板 ?>