【问题标题】:Meteor.js-like templates for PHP类似 Meteor.js 的 PHP 模板
【发布时间】:2015-04-17 23:34:08
【问题描述】:

在过去的 2 年里,我在所有项目中都使用 Meteor.js,但我接受了一个使用 PHP 的项目,但它仍然没有合适的模板引擎,它只使用简单的 include 和 php echos .

我真的很喜欢类似 mustache 的语法,但是真正让 Meteor.js 样式模板与众不同的是,它能够为每个模板帮助器运行 #each、#if/else 等帮助器函数,并且您可以定义多个每个文件的模板。

我想找到一个类似的模板引擎,以避免创建自己的。

通常,我在同一页面上设置许多小模板,就像这样:

<template name="post">
{{ user.name }} said :
{{> postTextTemplate }}
</template>
<template name="postTextTemplate">
{{ postText }}
<hr>
At {{ postDate }} - {{ postLikes }} likes.
</template>

谢谢。

【问题讨论】:

    标签: php templates


    【解决方案1】:

    你可以使用Blade,这似乎正是你想要的,但是你不能在没有 Laravel 的情况下使用 Blade。不过,您可以使用一些standalone libraries

    Blade 使用 @ 而不是您习惯使用的 # 语法,因此您可以在视图中做一些很酷的事情,例如:

    @if($shouldLoop)
        @for($i = 0; $i < 10; $i++)
            <p>{{ $i }}</p>
        @endfor
    @else
        <p>I shouldn't loop</p>
    @endif
    

    否则,有各种库,例如 bobthecow's mustashe.php,它提供了 PHP 中的 mustashe 实现。

    【讨论】:

    • 似乎不可能像 Meteor.js 允许的那样将模板全部放在一个文件中,这是一个巨大的生产力和清晰度提升,一些小页面有 5-6 个模板,每个模板都有一个文件很疯狂。
    【解决方案2】:

    最终使用 underscore.js 模板和 和 的自定义正则表达式规则创建我自己的元语言

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-25
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多