我正在用简单的模板集成来制作php内容管理系统,但我找不到任何好的模板语言。目前,我正在使用xml模板,并使用phpDOM对其进行解析。以下是模板的样子:
<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="{"enUS":"Title","enGB":"Title"}" />
那么,我还能在这里使用什么其他模板语言呢?我还需要它来支持xml(例如获取CMS_STRING内部html)。我发现的所有模板语言都预装了缓存引擎和所有其他我不需要的东西。我只需要一个带解析器的简单语言,我会自己处理其他事情。
谢谢。
使用PHP模板语言。你的生活会更好、更快乐、更简单、更快,你周围的人会感谢你的后代,世界各地的小狗和小猫会减少死亡,全球变暖甚至可能会稍微减缓。
说出一些你看过但不能使用的,这样我们就不会一直建议重复。你看到Smarty了吗?它很棒,听起来可以满足你的需求。
是的,Smarty有缓存,但你不必启用它。你将得到的唯一文件是模板的编译版本,但这只是为了提高效率,你可以禁用模板缓存(以换取性能)。
流行的模板引擎:
-
智能(过时)
-
Latte(主要由Nette社区使用)
-
Twig(主要由Symfony社区使用)
-
Mustache(该模板引擎的官方实现存在于二十多种编程/脚本语言中)
我倾向于Mustache,主要是因为它有官方JS版本、正式Ruby版本、官方Java版本
有很多可用的模板系统Twig、Smarty、Moustach,当然还有PHP本身。
我喜欢实际的模板系统而不是使用普通的旧PHP的一点是,如果你不熟悉MVC设计模式,它会迫使你做其中的VC部分,并教会你它的重要性……我这么说是因为你仍然可以在其中做业务逻辑,但它们通常会让它变得困难,并让你气馁。
我相信所有这些都内置了缓存,所以在执行方面,应该和普通php脚本一样快。