【发布时间】:2011-11-01 10:29:03
【问题描述】:
作为我正在从事的大学项目(基于 MVC 的自定义项目管理系统)的一小部分,我需要开发一个模板引擎。我不希望使用像 Smarty 这样的独立系统,因为我已经自己编写了项目的所有其他部分,现在不想回去。
无论如何,到目前为止,我已经编写了一些简单的代码,我有一个类,创建它的一个实例,向实例添加一些数据,然后传入一个模板文件。该文件有一系列像 {this} 这样的标签,然后被数据替换。简单的。
我遇到的问题是循环事物 - 即用户表或类别列表。目前,我有一个页面模板文件(users.html),其中包含开始和结束标签,它们之间有一个名为 {users} 的模板标签。然后我有另一个模板文件(users-detail.html),其中显示了一个包含用户信息的表格行。我正在创建 users-detail.html 模板的新实例,添加数据,解析它,然后放置输出(HTML 字符串)到一个数组中。然后我循环这个数组,将所有字符串附加在一起,然后将其分配给 users.html 模板文件中的 {users} 标记。
正如您可能从该解释中看出的那样,这有点麻烦,并且可能有更好的方法来完成我想要实现的目标。理想情况下,我希望尽可能避免在模板文件中使用 PHP,而且我经常需要在一个模板文件中包含多个循环。
如果有人对我如何实现这一目标有任何提示/建议,或者我可以遵循任何教程以获得一些灵感,我将不胜感激。
提前致谢。
【问题讨论】:
-
查看 h2o 模板的源代码 - github.com/speedmax/h2o-php - 应该对您有所帮助
-
您为什么不查看现有模板引擎的代码并从中学习呢?有什么比一个实际的例子更好的呢?
标签: php templates template-engine