我正在使用简单的模板集成制作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标记,然后从数据库中为访问者提取值或为admin生成可编辑的输入。
xml的一个问题是我不能在属性中使用标签,例如:
<a href="<CMS_STRING name="url" />"></a>
另一个问题是php DOM引用转义。它看起来很丑陋,难以理解。假设我想将JSON放在本地化标题的属性中:
<CMS_STRING type="string" name="title" title="{"enUS":"Title","enGB":"Title"}" />
那么我可以在这里使用其他模板语言?我还需要它来支持xml(例如获取CMS_STRING内部html)。我找到的所有模板语言都预先设置了缓存引擎和其他我不需要的东西。我只需要一个带解析器的简单语言,我会自己处理其他的东西。
感谢。
答案 0 :(得分:2)
使用PHP Templating Language。你的生活会更好,更快乐,更简单,更快,你周围的人会感谢你世世代代,世界各地的小狗和小猫会死得更少,全球变暖甚至可能会慢下来。
答案 1 :(得分:1)
说出你看过的一些但不能使用的名字,所以我们不会继续建议重复。你看过Smarty了吗?这很棒,听起来可以满足您的需求。
是的,Smarty有缓存,但您不必启用它。您将获得的唯一结果文件是模板的编译版本,但这只是为了提高效率,您可以禁用模板缓存(以换取性能)。
答案 2 :(得分:1)
我倾向于支持 Mustache ,主要是因为它有 an official JS version , an official Ruby version , an official Java version 等。它允许您使用相同的模板前端和后端,这对于首先在后台渲染并在更新时在前景中重新渲染的小部件非常有用。
答案 3 :(得分:0)