对于我的项目,在流程结束时会生成一个表单。在我的旧系统中,它是Regex+HTML的组合(我了解到维护起来不是很好:)
所以我去做了一些研究,但似乎找不到我想要的模板引擎。我一直在关注Twig&智能,但我希望引擎能够遍历自定义标记,从而调用函数来检索从源读取的数据(基本上是回调函数)。由于已经有大量的数据收集,根据用户想要如何显示,数据可以有各种不同的格式
我还想包括如果和其他条件
我希望我足够清楚。
我将从我的模板系统中提供一个非常基本的代码示例
<html>
<body>
<table>
<tr>
<td>
Building
</td>
<td>
<mi:seperated seperator=", " source="building" key="type" />
</td>
</tr>
<tr>
<td>
Construction
</td>
<td>
<mi:seperated seperator=", " source="house" key="construction" default="N/A" />
</td>
</tr>
<tr>
<td>
Floor
</td>
<td>
<mi:value source="house" key="floor" default="N/A" />
</td>
</tr>
</table>
</body>
</html>
最终结果会是这样的。
<html>
<body>
<table>
<tr>
<td>
Building
</td>
<td>
Double Storey, Domestic dwelling
</td>
</tr>
<tr>
<td>
Construction
</td>
<td>
6 Bedrooms, Brick Veneer
</td>
</tr>
<tr>
<td>
Floor
</td>
<td>
N/A
</td>
</tr>
</table>
</body>
</html>
任何人都可以编辑这些表单模板。所以,我不想走"PHP是一种模板语言"的道路,当然,除非有一种简单的方法来限制执行什么代码。
编辑:也只是一个简短的说明。回调函数用于处理HTML输出(因为某些标记可以创建复杂的输出)
如果你使用Smarty,你可以创建一个插件来处理你的自定义标签。关于Smarty插件的一些小东西http://www.smarty.net/docs/en/plugins
我想你应该看看块函数