2012-01-21 65 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