程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於template的思考,對模板熟悉者請進。

關於template的思考,對模板熟悉者請進。

編輯:關於PHP編程


用PHP進行項目開發,由於PHP的解釋執行,我們經常會面臨執行速度和通用性、編程效率產生矛盾,然後又如何取捨的問題。PHP的早期版本都是面向過程的,以執行速度快著稱,在開發復雜應用時日顯捉襟見肘,隨著4.3及以後版本的發行可以看到PHP將向面向對象方向發展,
用PHP進行項目開發,由於PHP的解釋執行,我們經常會面臨執行速度和通用性、編程效率產生矛盾,然後又如何取捨的問題。PHP的早期版本都是面向過程的,以執行速度快著稱,在開發復雜應用時日顯捉襟見肘,隨著4.3及以後版本的發行可以看到PHP將向面向對象方向發展,於是大家逐漸習慣寫大量的基類,大量的使用include_once,這樣使我們的開發變得有序,程序邏輯更清晰,當我們開發完成之後,發現執行效率不如以前,PHP在解析和文件調用上花費過多的開銷,一個頁面使用十幾二十個include會將PHP拖垮,我們的注意力開始從數據庫轉向PHP程序的優化,從一方面來講,大型數據驅動用面向對象模式無可非議,另一方面,PHP的代碼應該突出類C語言的簡潔高效。於是我們迷茫了:如何保證大型應用的執行效率?這是我思考已久的問題。
也許上面的話題涉及的太多,下面我只想具體談談大量模板處理的問題:對於幾百個頁面的規模,每頁都有動態數據,少量頁面涉及較多的變量,如何方便地實行模板變量替換?難道直接用set_var()一行一行地替換?
模板機制的廣泛采用使PHP代碼和HTML混雜在一起成為歷史,解決了前台輸出和後台程序的沖突,前台對程序員是透明的,同樣後台對美編也是透明的,優越性不言而喻,而我們所付出的代價只是約定好一組變量名,並簡單的替換一下而已。然而有幾百個網頁就有幾百個模板,每一個頁面可能有數十個變量,於是這一簡單的變量替換工作也變成了累贅,以PHPLIB的template為例,就需要幾十行set_var(),我開始設想一個VIEW類,它將繼承template,定義一個數組成員保存用來替換的變量名表,提供setvalue()和output()方法,通過setvalue($key,$value)來賦值,很明顯$value就是從數據庫取出的數據,$key是將要替換的變量,難點就是如何確定$key(即HTML中{}中的名字)的值, 舉個例子,比如在模板文件my.tpl中象這樣:
您的用戶名是
職位是 在PHP文件中應該象這樣($name和$position是動態數據): …… $tp->set_file("filehandle","my.tpl"); $vararr=array("tpname"=>$name,"tpposition=>$position); tp->set_var($vararr); tp->pparse("out","filehandle"); 在倒數第二行我用數組傳遞要替換的變量列表,一個頁面有一二十個模板變量是正常,問題是能不能方便地一次性設置好數組下標(即要替換的變量名例如"tpname"和"tpposition"),否則只能一行行地set_var,目前我仍在探索中,歡迎大家踴躍交流這方面的解決辦法。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved