在Yii框架中使用PHP模板引擎Twig的例子
Twig是一款快速、安全、灵活的PHP模板引擎,它内置了许多filter和tags,并且支持模板继承,能让你用最简洁的代码来描述你的模板。他的语法和Python下的模板引擎Jinjia以及Django的模板语法都非常像。比如我们在PHP中需要输出变量并且将其进行转义时,语法比较累赘:
<?phpecho$var?> <?phpechohtmlspecialchars(\$var,ENT_QUOTES,'UTF-8')?>
但是在Twig中可以这样写:
{{var}} {{var|escape}} {{var|e}} {#shortcuttoescapeavariable#}
遍历数组:
{%foruserinusers%} *{{user.name}} {%else%} Nouserhasbeenfound. {%endfor%}
但是要在YiiFramework集成Twig就会遇到点麻烦了,官方网站中已经有能够集成Twig的方案,所以这里我也不再赘述。但是由于Twig中是不支持PHP语法的,所以在有些表达上会遇到困难,比如我们在写Form的视图时,经常会这么写:
<?php$form=$this->beginWidget('CActiveForm');?> <span>Login</span> <ul> <li> <?phpecho$form->label($model,'username');?> <?phpecho$form->textField($model,'username');?>
</li>
<li> <?phpecho$form->label($model,'password');?> <?phpecho$form->passwordField($model,'password');?>
</li>
<li> <buttontype="submit">Login</button>
</li>
</ul> <?phpecho$form->error($model,'password');?> <?php$this->endWidget();?>