第一步:加載Smarty模板引擎,例如:require("Smarty.class.php");。 php
第二步:創建Smarty對象,例如:$smarty=new Smarty();。 數據庫
第三步:修改Smarty的默認行爲,例如:開啓緩存機制、修改模板默認存放目錄等。 設計模式
第四步:將程序中動態獲取的變量,經過Smarty對象中的assign()方法置入模板裏。 數組
第五步:利用Smarty對象中的display()方法將模板內容輸出。 緩存
ui
在這五個步驟中,能夠將前三個步驟定義在一個公共文件中,像前面介紹過的用來初始化Smarty對象的文件main.inc.php。由於前三步是 Smarty在整個PHP程序中應用的核心,不管是常數定義、外部程序加載、共享變量創建等,都是從這裏開始的。因此咱們一般都是先將前三個步驟作好放入 一個公共文件中,以後每一個PHP腳本中只要將這個文件包含進來就能夠了,所以在程序流程規劃期間,必須好好構思這個公用文件中設置的內容。後面的兩個步驟 是經過訪問Smarty對象中的方法完成的,有必要正式地介紹一下assign()和display()兩個方法。 spa
設計
在PHP腳本中調用該方法能夠爲Smarty模板文件中的變量賦值。它的使用比較容易,原型以下所示: 對象
void assign (string varname, mixed var)
//Smarty對象中的方法,用來賦值到模板中 模板引擎
經過調用Smarty對象中的assign()方法,能夠將任何PHP所支持的類型數據賦值給模板中的變量,包含數組和對象類型。使用的方式有兩種,能夠指定一對"名稱/數值"或指定包含"名稱/數值"的聯合數組。以下所示:
//指定一對"名稱/數值"的使用方式
$smarty->assign("name","Fred");
//將字符串"Fred"賦給模板中的變量{$name}
$smarty->assign("address",$address);
//將變量$address的值賦給模板中的變量{$address}
//指定包含"名稱/數值"的聯合數組的使用方式
$smarty->assign(array("city" => "Lincoln","state" =>
"Nebraska")); //這種方式不多使用
2.display()方法
基於Smarty的腳本中必須用到這個方法,並且在一個腳本中只能使用一次,由於它負責獲取和顯示由Smarty引擎引用的模板。該方法的原型以下所示:
Void display (string template [, string cache_id [, string compile_id]])
//用來獲取和顯示Smarty模板
第一個參數template是必選的,須要指定一個合法的模板資源的類型和路徑。還能夠經過第二個可選參數cache_id指定一個緩存標識符的名 稱,第三個可選參數compile_id在維護一個頁面的多個緩存時使用,這兩個可選參數將在本章的16.8節中討論。在下面的示例中使用多種方式指定一 個合法的模板資源,以下所示:
//獲取和顯示由Smarty對象中的$template_dir屬性所指定目錄下的模板文件index.tpl $smarty->display("index.tpl");
//獲取和顯示由Smarty對象中的$template_dir變量所指
定的目錄下子目錄admin中的模板文件index.tpl
$smarty->display("admin/index.tpl");
//絕對路徑,用來使用不在$template_dir模板目錄下的文件
$smarty->display("/usr/local/include/templates/header.tpl");
//絕對路徑的另一種方式,在WINDOS平臺下的絕對路徑必須使用"file:"前綴
$smarty->display("file:C:/www/pub/templates/header.tpl");
在使用Smarty的PHP腳本文件中,除了基於Smarty的內容須要上面五個步驟外,程序的其餘邏輯沒有改變。例如,文件處理、圖像處理、數據庫鏈接、MVC的設計模式等,使用形式都沒有發生變化。