PHP-需要一个可以从数据源读取的模板系统


PHP - Need a Templating system that can read from a data-source

对于我的项目,在流程结束时会生成一个表单。在我的旧系统中,它是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

我想你应该看看块函数