PHP模板引擎,可以将表示与后向逻辑分开

时间:2014-01-17 11:50:13

标签: php html templates

我现在正在为一个java团队工作,但我正在使用PHP作为私人案例。

我的工作团队正在导入Thymeleaf,这是一个强大的java模板引擎。

它可以将输出或表达式的变量(例如 if else )写入属性的标记中,例如:

<tr th:each="prod : ${allProducts}">  
  <td th:text="${prod.name}">Oranges</td>  
  <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td>  
</tr>  

它也可以在浏览器中正常呈现,完全没有任何java的变量或表达式。

当我使用PHP时,我知道 Smarty twig
但是他们都必须在标签之外编写变量和表达式(而不是作为属性),它们在浏览器中显示。

所以我想知道是否有一些方法可以像Thymeleaf那样使用Smarty或twig 或者其他PHP模板引擎可以轻松完成此任务。

致以最诚挚的问候,

更新

  

它也可以在浏览器中正常呈现,完全没有任何java的变量或表达式。

我的意思是这可以在没有任何解析过程的情况下完成 只需在浏览器中打开文件,就好像没有任何引擎一样。

3 个答案:

答案 0 :(得分:1)

我知道了!

这是PHPTAL 正如Thymeleaf所做的那样!

太棒了!

答案 1 :(得分:0)

纯PHP,内置模板引擎。无需安装。

<?php foreach ($allProducts as $prod): ?>
<tr>
<td><?= $prod->name ?></td>
<td><?= $numbers->formatDecimal($prod->price,1,2) ?></td>
</tr>
<?php endforeach; ?>

如果您没有输入<?标签,那就像普通的HTML一样。按惯例分离,没有技术障碍。如果您有更多限制技术的经验,那就足够了。

答案 2 :(得分:-1)

  

但是他们都必须在标签之外写变量和表达式

呃......不是吗?我希望我不知道你错了什么,但这是错的。

<script src="{$tmplpath}js/chosen/chosen.jquery.min.js"></script>
<link rel="stylesheet" href="{$tmplpath}css/style_general.css">
{if isset($custom_stylesheet)}
    <link rel="stylesheet" href="{$tmplpath}css/{$custom_stylesheet}">
{/if}

这是我上次与Smarty合作的项目,我不必在标签之外写作。