2012-01-21 115 views
2

我正在構建一個Web應用程序,它的交互性非常依賴Ajax,我想解決兩個版本的HTML模板的問題,讓事情乾乾淨淨。PHP + JS的模板引擎,但

我在這裏遇到了一個問題,template engine both for JS and PHP,它提出了一個很好的答案,mustache。然後我想起了所有我無法做到的事情,比如Zend_View_Helpers,以及其他依賴PHP的東西。

我的問題是,有沒有更好的解決方案?也許這可以讓我使用Zend_View(或類似的輸出到模板語言),這將允許我靈活的PHP和它的庫,但模板語言的乾燥性。

那還是另一個完全沒有想到的解決方案。我確信這種事情以前已經做過很多次了,所以有沒有什麼最佳做法(或不好的做法)。

感謝

回答

0

雖然我不完全知道你正在嘗試做的怎麼樣使用the Twig project什麼。您可以將對象傳遞到模板並訪問其屬性和方法:

爲方便起見foo.bar並在PHP層以下的事情:

  • 檢查,如果foo是一個數組和一個酒吧有效元素;
  • 如果不是,並且如果foo是對象,請檢查該欄是否爲有效的屬性;
  • 如果沒有,並且如果foo是一個對象,檢查該bar是一個有效的方法(即使bar是構造函數 - 使用__construct())。
  • 如果不是,並且如果foo是對象,請檢查getBar是否是有效的方法;
  • 如果不是,並且如果foo是對象,請檢查isBar是否是有效的方法;
  • 如果沒有,則返回空值。

FOO [「酒吧」]在另一方面只適用於PHP數組:

  • 檢查是否foo是一個數組和酒吧的有效元件;
  • 如果沒有,則返回空值。

還有一個JS port of the Twig templating language

+0

這是朝正確方向邁出的一步,是的。我會研究一下。我想我正在尋找的是有2個階段模板的能力。第一個是PHP,它輸出一個語言不可知的模板,在Twig,Moustache等中。也許這是一個瘋狂的想法,也許這不是我想要的? – Adam