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

时间:2012-03-03 23:59:03

标签: php forms templates report

对于我的项目 - 在流程结束时生成表单。在我的旧系统中,它是Regex + HTML的组合(我学到了不太好维护:))

所以我已经去做了一些研究,但我似乎无法找到我追求的模板引擎。我一直在关注 Twig& Smarty ,但我希望引擎能够遍历自定义标记,而自定义标记又会将函数调用检索从中读取的数据source (基本上是回调函数)。由于已经存在大量数据,因此可以根据用户的显示方式提供各种格式。

我还希望包含 if else 条件

我希望我足够清楚。

我将从模板系统中提供一个非常基本的代码示例

<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输出(因为某些标记可​​以创建复杂的输出)

1 个答案:

答案 0 :(得分:0)

如果你使用Smarty,你可以创建一个插件来处理你的自定义标签。关于Smarty http://www.smarty.net/docs/en/plugins

的插件的一些小问题

我想你必须看看像block functions

这样的东西