Possibilidades de uso

A seguir iremos documentar alguns itens que podem servir como base na criação de seu tema.

- Delimitadores:

{{ … }} - Usado para imprimir uma variável ou o resultado de uma expressão.

{% … %} - Usado para executar instruções como por exemplo for-loops.

{# … #} - Usado para escrever comentários, equivalente ao /* … */ . Podendo ser escrito em uma única linha ou múltiplas.

- Variáveis

Você pode atribuir valores a variáveis dentro de blocos de código. As atribuições usam a tag set.

{% set foo = 'foo' %}
{% set foo = [1, 2] %}
{% set foo = {'foo': 'bar'} %}

- Filtros

São separados do item por um símbolo de barra vertical (|).

O exemplo a seguir remove todas as tags HTML do nome e o transforma em maiúsculo:

{{ name|striptags|title }}

Caso queira saber mais sobre os filtros acesse a documentação: https://twig.symfony.com/doc/1.x/filters/index.html

- Funções

São chamadas pelo nome seguido de parênteses (xxx()) e podem ter argumentos.

No exemplo a seguir, a função range retorna uma lista contendo uma progressão aritmética de números inteiros:

{% for i in range(0, 3) %}
    {{ i }},
{% endfor %}

Caso queira saber mais sobre funções acesse a documentação: https://twig.symfony.com/doc/1.x/functions/index.html Dentre as funções temos o dump

Sendo utilizado quando desejamos obter informações sobre uma variável, principalmente para depurar um item que não se comporta conforme o esperado

{{ dump(user) }}

- Incluindo itens

A função include é utilizada para incluir um template e retornar seu conteúdo renderizado para o atual:

{{ include('sidebar.html') }}

- Estrutura de controle

Refere-se a todos os itens que controlam um fluxo, podendo ser:

- Condicionais (if/ elseif/ else)

- for-loops

- entre outros, ...

As estruturas de controle aparecem dentro dos {% ... %}

No exemplo a seguir, para exibir uma lista de usuários fornecida em uma variável chamada users, use a tag for:

<ul>
    {% for user in users %}
        <li>{{ user.username }}</li>
    {% endfor %}
</ul>

A tag if pode ser usada para testar uma expressão:

{% if users|length > 0 %}
    <ul>
        {% for user in users %}
            <li>{{ user.username }}</li>
        {% endfor %}
    </ul>
{% endif %}

Caso queira saber mais sobre estrutura de controle acesse a documentação: https://twig.symfony.com/doc/1.x/tags/index.html

- Lógica

Você pode combinar várias expressões com os seguintes operadores:

and: Retorna verdadeiro se ambos os operandos forem verdadeiros.

or: Retorna verdadeiro se um operando for verdadeiro.

not: nega uma declaração.

Exemplo de uso do and:

{% if ("home" in pages.current) and settings.banner_info %}
    {% element 'snippets/banner_info' %}
{% endif %}

Exemplo de uso do or:

if ("home" in pages.current) or ("product" in pages.current) %}                            
    {{ content_for_layout }}
{% else %}

Exemplo de uso do not:

{% if 1 not in [1, 2, 3] %}
{% if not (1 in [1, 2, 3]) %}

- Removendo espaços em branco:

O Twig também possui um filtro que remove os espaços em branco entre as tags HTML, o spaceless.

Utilizado como um "minificador" de arquivo.

Entrada:

{% apply spaceless %}
    <div>
        <strong>foo bar </strong>
    </div>
{% endapply %}

Saída:

{# <div><strong>foo bar</strong></div> #}

Para finalizar segue uma documentação sobre como utilizar os espaçamentos em seus códigos Twig, seguindo os padrões oficiais de codificação.

Coloque um (e apenas um) espaço ao início de um delimitador ( {{, {%, e {#) e antes do final de um delimitador ( }}, %}, e #}).

https://twig.symfony.com/doc/1.x/coding_standards.html

Exemplos:

{{ foo }}
{# comment #}
{% if foo %}{% endif %}

Last updated