Twig

灵活、快速且安全
PHP 模板引擎

a Symfony Product
文档 编码标准
您正在阅读 Twig 3.x 的文档。切换到 Twig 1.x, 2.x 的文档。

问题与反馈

许可证

Twig 文档 在新 BSD 许可证 下获得许可。

编码标准

注意

Twig CS fixer tool 使用本文档中描述的编码标准来自动修复您的模板。

在编写 Twig 模板时,我们建议您遵循这些官方编码标准

  • 在分隔符开始符({{{%{#)之后以及分隔符结束符(}}%}#})之前,各放置一个空格

    1
    2
    3
    {{ user }}
    {# comment #}
    {% if user %}{% endif %}

    当使用空白控制字符时,请勿在其与分隔符之间放置任何空格

    1
    2
    3
    {{- user -}}
    {#- comment -#}
    {%- if user -%}{%- endif -%}
  • 在以下运算符的前后各放置一个空格:比较运算符(==!=<>>=<=)、数学运算符(+-/*%//**)、逻辑运算符(notandor)、~isin 以及三元运算符(?:

    1
    2
    3
    {{ 1 + 2 }}
    {{ first_name ~ ' ' ~ last_name }}
    {{ is_correct ? true : false }}
  • 在映射中的 : 符号之后以及序列和映射中的 , 之后,各放置一个空格

    1
    2
    [1, 2, 3]
    {'name': 'Fabien'}
  • 在表达式中,请勿在左括号之后和右括号之前放置任何空格

    1
    {{ 1 + (2 * 3) }}
  • 请勿在字符串分隔符前后放置任何空格

    1
    2
    {{ 'Twig' }}
    {{ "Twig" }}
  • 请勿在以下运算符前后放置任何空格:|...[]

    1
    2
    3
    4
    {{ name|upper|lower }}
    {{ user.name }}
    {{ user[name] }}
    {% for i in 1..12 %}{% endfor %}
  • 请勿在用于过滤器和函数调用的括号前后放置任何空格

    1
    2
    {{ name|default('Fabien') }}
    {{ range(1..10) }}
  • 请勿在序列和映射的开头和结尾括号前后放置任何空格

    1
    2
    [1, 2, 3]
    {'name': 'Fabien'}
  • 在宏参数声明中的 = 前后各放置一个空格

    1
    {% macro html_input(class = "input") %}
  • 当使用命名参数时,在 : 符号之后放置一个空格

    1
    {{ html_input(class: "input") }}
  • 对于所有变量名(由应用程序提供并在模板中创建)、函数/过滤器/测试名称、参数名称和命名参数,使用蛇形命名法

    1
    2
    3
    4
    5
    6
    7
    8
    9
    {% set name = 'Fabien' %}
    {% set first_name = 'Fabien' %}
    
    {{ 'Fabien Potencier'|to_lower_case }}
    {{ generate_random_number() }}
    
    {% macro html_input(class_name) %}
    
    {{ html_input(class_name: 'pwd') }}
  • 在标签内缩进您的代码(使用与渲染模板的目标语言相同的缩进)

    1
    2
    3
    4
    5
    {% block content %}
        {% if true %}
            true
        {% endif %}
    {% endblock %}
  • 使用 : 而不是 = 来分隔参数名称和值

    1
    {{ data|convert_encoding(from: 'iso-2022-jp', to: 'UTF-8') }}