smarty模板技術,smarty模板
一、什麼是smarty?
smarty是一個使用php寫出來的模板php模板引擎,它提供了邏輯與外在內容的分離,簡單的講,目的就是要使用php程式員同美工分離,使用的程式員改變程式的邏輯內容不會影響到美工的頁面設計,美工重新修改頁面不會影響到程式的程式邏輯,這在多人合作的項目中顯的尤為重要。
二、smarty優點:
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開發迅速的優點。
四、smarty安裝及配置:
下載smarty的安裝包解壓後,把libs檔案夾放在網站根目錄下,然後建立幾個檔案夾
templates 存放模板檔案
templates_c 存放編譯後的檔案
configs 存放設定檔
cache 存放快取檔案
再建立初始設定檔案smarty.init.php
php include "./libs/Smarty.class.php";//包含Smarty類庫所在的檔案 $smarty=new Smarty();//建立一個Smarty類的對象$smarty $smarty->template_dir="./templates/";//設定所有模板檔案存放目錄 $smarty->compile_dir="./templates_c/";//設定所有編譯過的模板檔案存放目錄 $smarty->config_dir="./configs/";//設定模板中特殊設定檔存放的目錄 $smarty->cache_dir="./cache/";//設定存放Smarty快取檔案的目錄 $smarty->caching=1;//設定開啟Smarty緩衝模板功能 $smarty->cache_lifetime=60*60*24;//設定模板緩衝有效時間為1天 $smarty->left_delimiter='<{';//設定範本語言中的左結束符 $smarty->right_delimiter='}>';//設定範本語言中的右結束符?>
五、smarty引擎運行機制:
1、建立模板檔案index.tpl及項目中所需的設定檔my.conf,設定檔也可後期補充
<{config_load file="../configs/my.conf"}><html> <head> <meta charset="utf-8"> <title><{$title}>title> head> <body bgcolor="<{#bgColor#}>"> <{$content}> body>html>
2、建立程式入口檔案index.php,引入控制器檔案,傳值並分配變數,並顯示模板index.tpl
php //引入smarty.init.php include 'smarty.init.php'; $smarty->assign("title","我的第一個檔案標題"); $smarty->assign("content","我的第一個檔案內容"); $smarty->display("index.tpl");?>
3、運行index.php,通過smarty控制器檔案會產生一個php格式的編譯檔案,當緩衝機制未開啟時,瀏覽器會讀取這個編譯檔案並最終顯示出來。當開啟緩衝機制時,smarty控制器會產生一個靜態HTML頁面,即快取檔案com_index.tpl,這樣瀏覽器讀取效能更高。具體緩衝過程詳見smarty詳細使用教程第9點
http://www.bkjia.com/PHPjc/1096613.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1096613.htmlTechArticlesmarty模板技術,smarty模板 一、什麼是 smarty? smarty 是一個使用 php 寫出來的模板 php 模板引擎,它提供了邏輯與外在內容的分離,簡單的講,...