0

我正在使用简单的模板集成制作 php 内容管理系统,但我找不到任何好的模板语言。目前我正在使用 xml 模板并使用 php DOM 解析它们。以下是模板的外观:

<div class="one_fourth">
    <h4 class="section-header"><span><CMS_STRING type="string" name="title" title="Title" /></span></h4>
    <p><CMS_STRING type="string" name="body" title="Body text" tooltip="" /></p>
    <p><CMS_STRING type="link" name="link" title="Link" /></p>
</div>

在 php 中,我使用 DOM getElementsByTagName 解析所有 CMS_STRING 标签,然后从数据库中为访问者提取值或为管理员生成可编辑的输入。

xml 的一个问题是我不能在属性中使用标签,例如:

<a href="<CMS_STRING name="url" />"></a>

另一个问题是 php DOM 引用转义。它看起来丑陋且难以阅读。假设我想将 JSON 放入本地化标题的属性中:

<CMS_STRING type="string" name="title" title="{&quot;enUS&quot;:&quot;Title&quot;,&quot;enGB&quot;:&quot;Title&quot;}" />

那么我可以在这里使用什么其他模板语言呢?我还需要它来支持 xml(例如获取 CMS_STRING 内部 html)。我发现的所有模板语言都是用缓存引擎和我不需要的所有其他东西预制的。我只需要一个带有解析器的简单语言,我会自己处理其他事情。

谢谢。

4

4 回答 4

2

使用PHP 模板语言。你的生活会更好、更快乐、更简单、更快,你周围的人会感谢你的后代,世界各地的小狗和小猫会更少死亡,全球变暖甚至可能会放缓一点。

于 2012-07-25T00:34:54.080 回答
1

流行的模板引擎:

  • Smarty(变得过时)

  • 拿铁(主要由Nette社区使用)

  • Twig(主要由Symfony社区使用)

  • Mustache(这个模板引擎的官方实现存在于超过两​​打编程/脚本语言中)

我倾向于Mustache,主要是因为它有官方 JS 版本官方 Ruby 版本官方 Java 版本等。它允许您使用相同的模板前端和后端,这对于第一次渲染的小部件非常有用背景并在更新时在前台重新渲染。

于 2014-03-13T21:11:59.833 回答
1

说出一些你看过但不能使用的名字,所以我们不会一直建议重复。你看过Smarty吗?它很棒,听起来可以满足您的需求。

是的 Smarty 有缓存,但您不必启用它。您将获得的唯一结果文件是模板的编译版本,但这只是为了提高效率,您可以禁用模板缓存(以换取性能)。

于 2012-07-25T00:29:16.957 回答
0

有很多可用的模板系统TwigSmartyMustache,当然还有 PHP 本身。

我喜欢一个实际的模板系统而不是使用普通的旧 PHP 的一件事是,如果你不熟悉 MVC 设计模式,它几乎会迫使你去做它的 VC 部分,并教会你它的重要性。 .. 我这么说是因为您仍然可以在其中执行业务逻辑,但它们通常会使它变得困难,并且让您气馁。

我相信它们都内置了缓存,所以执行明智,应该和普通的 php 脚本一样快。

于 2012-07-25T02:19:13.243 回答