smarty是一個基於PHP開發的PHP模板引擎。它提供了邏輯與外在內容的分離,簡單的講,目的就是要使用PHP程序員同美工分離,使程序員改變程序的邏輯內容不會影響到美工的頁面設計,美工從新修改頁面不會影響到程序的邏輯,這在多人合做的項目顯的尤其重要。php
smarty:html
優勢:程序員
一、速度快:smarty的編譯性,使smarty調用編譯後的文件而不每次都調用模板文件 瀏覽器
二、插件:smarty能夠本身定義豐富的插件緩存
三、在smarty中有本身的豐富的 *模版* 控制的結構----->模版標籤ide
四、smarty通過編譯,緩存後平均運行速度要快函數
壞處:網站
一、中小型的項目不適合ui
二、實時更新數據的網站中不適用,好比股票網站spa
三、第一次運行的時候 編譯須要時間
1.下載smarty-3.1.27包,解壓後,找到libs文件夾,把裏面的文件拷貝到D:\wamp\www\smarty文件夾內
-Autoloader.php smarty自動加載類文件
-SmartyBC.class.php smarty的向後兼容性的包裝類
-Smarty.class.php smarty的核心類解析文件
/plugins smarty的插件目錄
/sysplugins smarry的核心插件目錄
2.打開Smarty.inc.php,編輯以下內容
<?php
require("./smarty/Autoloader.php");//require()引入smarty自動加載類文件
Smarty_Autoloader::register(); //把register()方法註冊到自動加載類函數裏面
$smarty = new SmartyBC();//建立smarty對象
//smarty運行環境的配置
$smarty->template_dir = "./template";
$smarty->compile_dir = "./comp";
$smarty->cache_dir = "./cache";
?>
3.在smarty文件夾下創建一個index.php,並引入smarty的初始化文件,並在smarty文件夾下創建一個名爲template的模版文件夾,在其下面建議index.html模板文件
4.使用smarty對象調用模版方法
$smarty->display(); //在php頁面調用模版文件
$smarty->display("模板文件名.後綴");
模板後綴: index.html index.tpl index.dwt index.php
注意:!!!模版文件不能在瀏覽器內直接訪問!!
第一階段實戰:
1.index.php內容
<?php
require("./smarty.inc.php");//引入smarty的初始化文件
$smarty->display("index.html"); //這行代碼必定要放到最後
?>
2.smarty.inc.php內容
<?php
require("./Autoloader.php");//require()引入smarty自動加載類文件
Smarty_Autoloader::register(); //把register()方法註冊到自動加載類函數裏面
$smarty = new SmartyBC();//建立smarty對象
//smarty運行環境的配置
$smarty->template_dir = "./template";
$smarty->compile_dir = "./comp";
$smarty->cache_dir = "./cache";
?>
3./template/index.html
smarty具體的使用:
PHP頁面分配給模版中的數據,也PHP頁面中數據怎麼在模版中顯示
$smarty->assign("tmp_var",$php_var);
tmp_var: 數據在模版中變量名
php_var: 數據在的php裏面的變量
php程序頁面往模版中傳遞數據
在模版中具體顯示數據{$tmp_var}其中{ }是smarty模版標籤的邊界符
實戰代碼演示
a.index.php內的代碼
<?php require("./Smarty.inc.php");//引入smarty的初始化文件 $str = "hello world"; $smarty->assign("str",$str); $smarty->display("index.html"); //這行代碼要放到最後不然會報錯 ?>
b. Smarty.inc.php內的代碼
<?php require("./Autoloader.php");//require()引入smarty自動加載類文件 Smarty_Autoloader::register(); //把register()方法註冊到自動加載類函數裏面 $smarty = new SmartyBC();//建立smarty對象 //smarty運行環境的配置 $smarty->template_dir = "./template"; $smarty->compile_dir = "./comp"; $smarty->cache_dir = "./cache"; ?>
c./template/index.html
<!DOCTYPE html> <html> <head> <title></title> </head> <body> {$str} </body> </html>
而後經過瀏覽器訪問smarty/index.php