其實(shí)本人也正在學(xué)PHP,所以就把學(xué)習(xí)PHP時(shí)的心得體會(huì)與所學(xué)到的知識(shí)分享一下吧,所以這一系列教程(或者是心得吧),將圍繞在初學(xué)PHP過程中遇到的問題和需要注意的地方。
這是關(guān)于PHP中Smarty模板技術(shù)的第一編,為什么要說模板技術(shù)呢?原因很簡(jiǎn)單,如果你想做一個(gè)合格的PHP程序員的話,如果你想開發(fā)一個(gè)結(jié)構(gòu)合理、移植方便的系統(tǒng)的話,那就要留意一下PHP的模板技術(shù),而在PHP的模板技術(shù)中,Smarty是一個(gè)不錯(cuò)的選擇。
使用模板化主要有兩個(gè)原因:1、可以使用同樣的代碼基為不同的目標(biāo)生成數(shù)據(jù)。2、應(yīng)用程序設(shè)計(jì)人員(負(fù)責(zé)創(chuàng)建和維護(hù)界面的人)可以與應(yīng)用程序開發(fā)人員獨(dú)立工作,因?yàn)橛帽憩F(xiàn)和邏輯并非密不可分地糾纏在一起。但模板化引擎如何完成這種分離?有趣的是,大多數(shù)實(shí)現(xiàn)的做法與編程語言非常相似,為完成各種與界面有關(guān)的任務(wù)提供了良好的定義的語法和命令集。
Smarty提供了很多強(qiáng)大的功能。
1、強(qiáng)大的表現(xiàn)邏輯
2、模板編譯
3、緩存
4、高度可配置和可擴(kuò)展
5、安全
如何使用Smarty?
使用Smarty與使用其它任何類庫一樣。對(duì)于初學(xué)者,只需要在執(zhí)行腳本中使Smarty類庫可用。實(shí)現(xiàn)這一點(diǎn)非常容易,使用 require() 語句即可:
require("Smarty.class.php");
之后,就可以實(shí)例化Smarty類:
$smarty = new Smarty;
現(xiàn)在,就可以用Smarty來做東西了。下面看看一個(gè)小例子:
以下是模板文件 index.tpl :
1 <html>
2 <head>
3 <title>{$title}</title>
4 </head>
5 <body bgcolor="#ffffff" text="#000000" link="#0000ff" vlink="#800080" alink="#ff0000">
6 <p>
7 Hi,{$name}.Welcome to the wonderful world of Smarty.
8 </p>
9 </body>
10 </html>
以下是PHP頁面方面代碼 index.php:
<?php
require('Smarty.class.php');
$smarty = new Smarty;
$smarty->assign("name","JiangZone");
$smarty->assign("title","Jiang's Blog");
$smarty->display("index.tpl");
?>
從以上兩段代碼可以看得到,index.tpl文件是頁面文件,沒有業(yè)務(wù)邏輯代碼,只有{$name},{$title},初學(xué)者可能覺得怪,不過如果有Java基礎(chǔ)的話,應(yīng)該看得出,它跟Jsp的EL表達(dá)式有點(diǎn)類似,或者跟標(biāo)簽庫功能有點(diǎn)像。這樣看上去,頁面跟程序邏輯就分開來了,設(shè)計(jì)師專注于他的頁面設(shè)計(jì),需要放入處理后的值的話,就加上個(gè){$name}等標(biāo)記,而程序員則專注于程序邏輯的實(shí)現(xiàn),將處理結(jié)果放到模板頁面那里相應(yīng)的變量位置。明眼人可能很快看得出,上面PHP代碼里,$smarty->assign("name","JiangZone");就是一個(gè)對(duì)模板賦值的過程,意為為模板中的變量$name 的值設(shè)為字符串“JiangZone”,下面的也是一樣,而最后那句,$smarty->display("index.tpl");則是將上面設(shè)置好的值應(yīng)用到index.tpl模板上,并將應(yīng)用后的結(jié)果輸出到客戶端。
posted on 2008-07-29 13:46
姜大叔 閱讀(521)
評(píng)論(0) 編輯 收藏 所屬分類:
PHP