說說 php模板 smarty
php的模板技術應該是經常提到的,象比較出名的phplib fasttemplate,都基本上實現了MVC的模式,功不可磨,現在用這2個模板的好象不多了,因為有另外的模板類 smarty ,smarty 和phplib 這些模板類的最主要的區別是,smarty 加了緩存的功能,每次打開程序不用都重新編譯模板。
下面來說我用過smarty後,對其的看法。
smarty 並沒有做的最好,因為它編譯後的模板太過臃腫,你可以打開smarty編譯後的模板頁面,裡面都是些對象,而且很復雜,PHP對對象變量處理相比是很慢的,而且編譯後的模板是不需要程序員去看的,何苦要搞的這麼復雜,會影響速度。
另外,想用smarty,還需要熟悉它的一些專門的語法,好比又要學習一門新的語言(雖然不是很復雜,但是也是很麻煩的)。
最後,smarty很死,幾乎無法定義自己想要的模板標簽。
下面介紹一種感覺不錯的模板技術。discuz!的模板函數。
discuz!的模板函數就是把模板中的標簽,直接替換成php的語法,最後程序執行的結果實際是php和html混和的程序,這樣程序速度是最快,沒有人會反對這個說法吧。
discuz!的模板函數很簡潔,只有短短的幾十行,比起smarty,要簡潔太多了,這麼簡潔的代碼,如果你要添加新的功能或者標簽是非常簡單的,同樣實現MVC,而且速度比smarty絕對快。實現了靈活性和高速的完美結合。
discuz!的模板函數在 其源代碼中的 /include/template.php 文件中,有興趣的朋友,可以去研究下。