Twig中{% include '' %}和{{ include('') }}的区别

11
4个回答

14

标签比函数不够灵活,例如:

  1. 如果你想将文件的内容存储在变量中以便重复使用:

    {% set content = include('test.twig') %}

而不是:

{% set content %}
{% include 'test.twig' %}
{% endset %}
  1. 如果你想要添加过滤器:

    {{ include('alert.twig') | upper }}

它的标签等效形式:

{% set temp %}
{% include 'alert.twig' %}
{% endset %}
{{ temp | upper }}

你看,使用{{ include }}而不是{% include %}虽然不会改变世界,但在你需要使用Twig进行一些棘手操作时可以减少一些复杂性。
此外,根据文档的建议,最好使用{{ include() }}以符合最佳实践:
{{ }} is used to print the result of an expression evaluation;
{% %} is used to execute statements.

3

来自Twig的更新日志:

* 1.12.0-RC1 (2012-12-29)

 * added an include function (does the same as the include tag but in a more flexible way)

1
我认为它们具有相同的功能,但是 {% include '' %} 是一个标签,而 {{ include('') }} 是一个函数。也许如果你想要覆盖这个函数,使用函数会更容易一些,而不是使用标签。

0

从Symfony 2.8 (LTS)开始 文档

2.3 自Symfony 2.3版本起,include()函数已经可用。在此之前,使用{% include %}标签。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接