Smarty在應用程序邏輯層的使用步驟

第一步:加載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的設計模式等,使用形式都沒有發生變化。

相關文章
相關標籤/搜索