我可以使用哪个模板引擎同时适用于JS和PHP?

32

我正在寻找一个简单的模板引擎,可以在客户端使用JS和在服务器端使用PHP。

也就是说,我希望能够为两种用例使用相同的模板定义

你知道有哪些模板引擎在JS和PHP中都有官方实现吗?


1
我最近也在思考同样的问题,感觉重点更在于可用实现和它们的状态,而不是建议。 显然,只需编辑模板一次就是一个常见的问题,为什么这里有如此少(或不具备生产条件)的解决方案?分享模板的最佳实践是什么?或者,如果这是一件坏事,为什么? - Alex
1
参见Contemplate engine,它专为js/node/php/python编写的同构模板引擎。该引擎非常快速和灵活,支持模板继承和许多特性(类似于twig/swig)。(附言:我是作者) - Nikos M.
4个回答

30

这就是我所说的好答案。简短、准确且有解释。干杯! - toraman

17

谢谢 :) 我会看一下的。 - Florian
你用过TwigJS吗?在我看来,它好像没有实现任何标准的过滤器或函数(?)。 - mindplay.dk
1
这里还有另一个 Twig 的 JS 实现:https://github.com/justjohn/twig.js/,它更加全面。 - adrienne
1
据我所知,所有的Twig JS版本都是PHP版本的子集,它们中没有一个是官方实现。 - John Slegers

16

你是说像mustache这样的东西吗?


就是这样,我几天前看到过这个,但是我既不记得在哪里看到它,也不记得它叫什么 :) 谢谢!(我还要等4分钟才能接受你的答案)。 - Florian
2
根据您的需求,Mustache 可能过于简单 - 如果您希望例如 json_encode() 您的视图模型并在客户端和服务器端渲染您的视图,您可能会发现简单的事情,如格式化数字或日期仍然需要您编写客户端和服务器函数,而 Twig 和 Twig.js 可能会提供更多这方面的功能。 - mindplay.dk

6

使用 Mustache!

据我所知,Mustache 是唯一在 PHP 和 JS 中都有官方实现的模板引擎... 另外还有二十多种编程/脚本语言。

  • Twig 还有一个 JS 版本,但是那个版本不完整,而且据我所知是非官方的。

  • Smarty 也有一个 JS 版本,但是那也是一个非官方移植版本... 而 Smarty 已经有点过时了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接