在Yii框架中使用PHP模板引擎Twig的例子

前端技术 2023/09/04 PHP

Twig是一款快速、安全、灵活的PHP模板引擎,它内置了许多filter和tags,并且支持模板继承,能让你用最简洁的代码来描述你的模板。他的语法和Python下的模板引擎Jinjia以及Django的模板语法都非常像。 比如我们在PHP中需要输出变量并且将其进行转义时,语法比较累赘:

复制代码 代码如下:

<?php echo $var ?>
<?php echo htmlspecialchars(\\$var, ENT_QUOTES, \'UTF-8\') ?>

但是在Twig中可以这样写:
复制代码 代码如下:

{{ var }}
{{ var|escape }}
{{ var|e }}         {# shortcut to escape a variable #}

遍历数组:
复制代码 代码如下:

{% for user in users %}
  * {{ user.name }}
{% else %}
  No user has been found.
{% endfor %}

但是要在Yii Framework集成Twig就会遇到点麻烦了,官方网站中已经有能够集成Twig的方案,所以这里我也不再赘述。但是由于Twig中是不支持PHP语法的,所以在有些表达上会遇到困难,比如我们在写Form的视图时,经常会这么写:

复制代码 代码如下:

<?php $form=$this->beginWidget(\'CActiveForm\'); ?>
    <span>Login</span>
    <ul>
  <li>
    <?php echo $form->label($model,\'username\'); ?>
                <?php echo $form->textField($model,\'username\'); ?>

  </li>

  <li>
    <?php echo $form->label($model,\'password\'); ?>
                <?php echo $form->passwordField($model,\'password\'); ?>

  </li>

  <li class=\"last\">
    <button type=\"submit\">Login</button>

  </li>

</ul>
    <?php echo $form->error($model,\'password\'); ?>
<?php $this->endWidget(); ?>

本文地址:https://www.stayed.cn/item/11784

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。