【问题标题】:Template engine for PHP + JS butPHP + JS的模板引擎但是
【发布时间】:2012-02-15 17:18:45
【问题描述】:

我正在构建一个相当依赖 Ajax 交互性的 Web 应用程序,我想解决我的 HTML 模板有两个版本的问题,以保持内容干燥。

我在这里遇到了一个问题,template engine both for JS and PHP,得到了一个很好的答案,mustache。然后我想起了所有我不能做的事情,比如 Zend_View_Helpers 和其他依赖 PHP 的东西。

我的问题是,有没有更好的解决方案?也许这将允许我使用 Zend_View(或类似于输出到模板语言),这将允许我使用 PHP 及其库的灵活性,但模板语言的 DRYness。

那个,或者我完全没有想到的另一种解决方案。我敢肯定这种事情以前已经做过很多次了,所以有没有最好的做法(或不好的做法)。

谢谢

【问题讨论】:

    标签: php javascript ajax template-engine zend-view


    【解决方案1】:

    虽然我不完全确定您正在尝试做什么,但如何使用 the Twig project。您可以将对象传递到模板中并访问其属性和方法:

    为方便起见,foo.bar 在 PHP 层做了以下事情:

    • 检查 foo 是否为数组,bar 是否为有效元素;
    • 如果不是,并且如果 foo 是一个对象,请检查 bar 是一个有效的属性;
    • 如果不是,并且如果 foo 是一个对象,请检查 bar 是一个有效的方法(即使 bar 是构造函数 - 使用 __construct() 代替);
    • 如果不是,并且如果 foo 是一个对象,请检查 getBar 是一个有效的方法;
    • 如果不是,并且如果 foo 是一个对象,则检查 isBar 是一个有效的方法;
    • 如果不是,则返回一个空值。
    另一方面,

    foo['bar'] 仅适用于 PHP 数组:

    • 检查 foo 是否为数组,bar 是否为有效元素;
    • 如果不是,则返回一个空值。

    还有一个JS port of the Twig templating language。

    【讨论】:

    • 这是朝着正确方向迈出的一步,是的。我会调查的。我想我正在寻找的是拥有 2 个阶段模板的能力。首先是 PHP,它在 Twig、Mustache 等中输出与语言无关的模板。也许这是一个疯狂的想法,也许这根本不是我想要的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多