smarty模板引擎總結一

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


wKiom1Y3HqjSTxcmAADRwwPz--I056.jpg

相關文章
相關標籤/搜索