隨筆-31  評(píng)論-257  文章-0  trackbacks-0
                其實(shí)本人也正在學(xué)PHP,所以就把學(xué)習(xí)PHP時(shí)的心得體會(huì)與所學(xué)到的知識(shí)分享一下吧,所以這一系列教程(或者是心得吧),將圍繞在初學(xué)PHP過(guò)程中遇到的問(wèn)題和需要注意的地方。
                這是關(guān)于PHP中Smarty模板技術(shù)的第一編,為什么要說(shuō)模板技術(shù)呢?原因很簡(jiǎn)單,如果你想做一個(gè)合格的PHP程序員的話,如果你想開(kāi)發(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)用程序開(kāi)發(fā)人員獨(dú)立工作,因?yàn)橛帽憩F(xiàn)和邏輯并非密不可分地糾纏在一起。但模板化引擎如何完成這種分離?有趣的是,大多數(shù)實(shí)現(xiàn)的做法與編程語(yǔ)言非常相似,為完成各種與界面有關(guān)的任務(wù)提供了良好的定義的語(yǔ)法和命令集。
                Smarty提供了很多強(qiáng)大的功能。
                1、強(qiáng)大的表現(xiàn)邏輯
                2、模板編譯
                3、緩存
                4、高度可配置和可擴(kuò)展
                5、安全

                如何使用Smarty?
                使用Smarty與使用其它任何類庫(kù)一樣。對(duì)于初學(xué)者,只需要在執(zhí)行腳本中使Smarty類庫(kù)可用。實(shí)現(xiàn)這一點(diǎn)非常容易,使用  require()  語(yǔ)句即可:
                require("Smarty.class.php");
          之后,就可以實(shí)例化Smarty類:
                $smarty = new Smarty;
          現(xiàn)在,就可以用Smarty來(lái)做東西了。下面看看一個(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頁(yè)面方面代碼  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è)面文件,沒(méi)有業(yè)務(wù)邏輯代碼,只有{$name},{$title},初學(xué)者可能覺(jué)得怪,不過(guò)如果有Java基礎(chǔ)的話,應(yīng)該看得出,它跟Jsp的EL表達(dá)式有點(diǎn)類似,或者跟標(biāo)簽庫(kù)功能有點(diǎn)像。這樣看上去,頁(yè)面跟程序邏輯就分開(kāi)來(lái)了,設(shè)計(jì)師專注于他的頁(yè)面設(shè)計(jì),需要放入處理后的值的話,就加上個(gè){$name}等標(biāo)記,而程序員則專注于程序邏輯的實(shí)現(xiàn),將處理結(jié)果放到模板頁(yè)面那里相應(yīng)的變量位置。明眼人可能很快看得出,上面PHP代碼里,$smarty->assign("name","JiangZone");就是一個(gè)對(duì)模板賦值的過(guò)程,意為為模板中的變量$name 的值設(shè)為字符串“JiangZone”,下面的也是一樣,而最后那句,$smarty->display("index.tpl");則是將上面設(shè)置好的值應(yīng)用到index.tpl模板上,并將應(yīng)用后的結(jié)果輸出到客戶端。
          posted on 2008-07-29 13:46 姜大叔 閱讀(525) 評(píng)論(0)  編輯  收藏 所屬分類: PHP
          主站蜘蛛池模板: 大方县| 南澳县| 沙洋县| 韶山市| 庐江县| 鞍山市| 台湾省| 奇台县| 乐至县| 郓城县| 改则县| 灵台县| 曲周县| 肇州县| 彭泽县| 临泉县| 东乡县| 太康县| 嘉兴市| 德化县| 崇义县| 杨浦区| 门头沟区| 凉城县| 山阴县| 肃北| 梁河县| 横峰县| 南木林县| 洛隆县| 宜城市| 南皮县| 陆丰市| 朝阳市| 禄丰县| 彩票| 淄博市| 台江县| 格尔木市| 东山县| 中江县|