PHP Template Engine?

Roodo! Blog 開發日誌 的「樂多日誌開發使用相關技術」中使用了 這個 PHP Tempate Engine。

這讓我想到跟 聊到一篇很有名的文章:Templates and Template Engines

這篇文章簡單來說就是這樣:「他媽的你們這些人幹嘛叫我把 PHP 改得更快,你們用 Smarty 這類的 Template Engine 當然會慢啊! 本身就是一個 Template Engine,你用 Template Engine 去寫另外一個 Template Engine 當然會慢,怪我咧,blah blah…」(當然,文句沒有這麼粗俗 :p)

但你又不能直接開放 PHP function 給 user 用:因為 user 可以把 $__GLOBAL 裡面的變數倒出來慢慢看有什麼好玩的,或者是透過你的主機寄寄廣告信 *grin*

是一套直接使用 PHP function,但是做了合理的限制的 PHP Template Engine:

Savant is a powerful but lightweight object-oriented template system for PHP.

Unlike other template systems, Savant by default does not compile your templates into PHP; instead, it uses PHP itself as its template language so you don’t need to learn a new markup system.

比起 所產生的 loading 會比較小。

Update:才剛寫完就看到 上另外一個計畫 ,將 比較不常用的功能都拿掉,有興趣的人也可以看看。

5 thoughts on “PHP Template Engine?”

  1. 只能說我覺得那篇文章的論點有點奇特… 左看右看都不覺得 PHP 本身夠格稱得上是 template engine…

  2. php可以當作template engine來用沒錯,
    不過用savant2,如果有讓user改寫template的狀況的話,
    為了安全還是要寫compiler,那就很像lite版的smarty了,
    而且Smarty compile動作只發生一次,不是每次都會compile,
    再加上op-code cache,效能是可以接受的,
    當然還是比不上smarty-light或savant2,
    另外smarty彈性的plugin架構,在處理view layer上,
    的確是”非常”的方便

Comments are closed.