繼續我的拖稿人生…(飛踢)
最近silex的系列文也不知不覺寫了不少篇,雖然不敢說有多大的功用,不過至少把silex這個好物稍微介紹了一些,所以有興趣的人與其繼續看這種廢文下去,直接動手去寫個一、兩個小玩具出來可能會認識的更快。最後在這邊提一個silex中不是那麼重要但是應該也經常會使用到的元件-Twig

Twig – The flexible, fast, and secure template engine for PHP
說到PHP中比較常出現的template engine,大家可能比較熟悉的是Smarty,不過因為我沒有接觸過smarty或其他的template engine,所以我也沒辦法說出誰好誰不好。不過因為symfony而接觸到的Twig,經過稍微試用之後覺得有不少不錯的設計,就趁這個機會寫個記錄以及自己的試用心得。
通常在網站的設計上,可以間單區分為前端(User Interface)以及後端(Action|Features)的工作。當然,有些人極為強悍,一個人就可以包辦所有的工作,不過先排除這些強者,一般工程師可能還是有自己比較擅長的部份,所以如果能夠讓大家可以在開發過程中不互相影響,能夠同時進行自己的工作?MVC的架構就給予相當不錯的協助,現今許多有名的Framework或多或少都含有MVC的架構在其中,而template engine就是可以提供fontend與backend互動的一個好工具。
Twig支援的功能蠻齊全的,頁面處理常用的功能大多都可以輕易達到,這部份官方的文件就已經說明的很詳細的,如果大家有興趣的話可以直接移駕到官方文件區。
程式的部份其實沒什麼特別的,就是設定template的位置以及相關的設定,然後設定好輸入的參數及資料,最後把印出目標的頁面即可。倒是頁面的部份,與一般的寫法有點不同。
不過其實也只是寫法稍微不同而已,一般頁面處理會用到的功能大多都支援(包含程式邏輯&一些頁面會使用到的功能),此外,Twig也同樣有提供Extension Interface,讓開發者可以藉此把自己需要的功能整合進來使用。透過Twig可以讓前、後端的工程師可以各自專注於自己的部份,也提供前端工程師可以輕鬆做到資料處理、過濾等行為。
在silex中預設就有支援Twig的功能,所以整合silex + Twig,可以相當快速開發一些小型專案&prototype,輕巧便捷的組合 :p
最近也在学习Silex和Symfony2,之前简单用过Djiango。
Twig应该是借鉴了Djiango的模板引擎,包括语法、模板继承、区块等。
感觉使用起来非常方便、自然。
Pingback: jade – Node.JS Template Engine | ! Ferrari.exist()