编码标准

编写Twig模板时,我们建议您遵循以下官方编码标准:

  • 在分隔符的开头后放一个(而且只有一个)空格 ({{{{{{%{{# )在分隔符结尾之前 (}}}}%}}#}} ):

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

    使用空白控制字符时,不要在它和分隔符之间放置任何空格:

    1
    2
    3
    {{- foo -}}
    {#- comment -#}
    {%- if foo -%}{%- endif -%}
    
  • 在下列运算符之前和之后放置一个(且只能一个)空格:比较运算符 (==!=, <, >, >=, <=), math operators (+, -, /, `` ``, ``%``, ``//``, `` *),逻辑运算符 (``notandor~isin ,以及三元运算符 (?: ):

    1
    2
    3
    {{ 1 + 2 }}
    {{ foo ~ bar }}
    {{ true ? true : false }}
    
  • : 登录哈希和 , 在数组和哈希中:

    1
    2
    {{ [1, 2, 3] }}
    {{ {'foo': 'bar'} }}
    
  • 在表达式中,不要在左括号后和右括号前放置空格:

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

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

    1
    2
    3
    4
    {{ foo|upper|lower }}
    {{ user.name }}
    {{ user[name] }}
    {% for i in 1..12 %}{% endfor %}
    
  • 不要在用于筛选器和函数调用的括号前后放置空格:

    1
    2
    {{ foo|default('foo') }}
    {{ range(1..10) }}
    
  • 在数组和散列的开始和结束前后不要放置任何空格:

    1
    2
    {{ [1, 2, 3] }}
    {{ {'foo': 'bar'} }}
    
  • 使用小写和下划线的变量名:

    1
    2
    {% set foo = 'foo' %}
    {% set foo_bar = 'foo' %}
    
  • 在标记内缩进代码(使用与呈现模板的目标语言相同的缩进):

    1
    2
    3
    4
    5
    {% block foo %}
        {% if true %}
            true
        {% endif %}
    {% endblock %}