O que é twig?

Twig é um moderno mecanismo para criação de templates em PHP. A sua vantagem, é que ele processa o código PHP de forma otimizada, reduzindo o seu tempo de processamento, além de ser seguro e flexível, podendo criar suas próprias tags, filtros e DSL.

Twig é utilizado por diversos projetos Open-Source, como: Symfony, Drupal 8, eZPublish, phpBB, Piwik, OroCRM. E muitos frameworks lhe dão suporte, como: Slim, Yii, Laravel, Codeignite, Kohana, etc.

Para saber mais sobre o Twig, consulte a sua página oficial.

O Twig possui uma sintaxe simples e de fácil aprendizado.

Para imprimir algo nos utilizamos:

{{ Imprime algo }}

Para fazer alguma lógica:

{% Faça alguma lógica aqui! %}

Para escrever um comentário:

{# Comentário #}

Vamos a alguns exemplos práticos:

IF

Para verificar se uma expressão é verdadeira:

{% if online == false %}
    <p>Our website is in maintenance mode. Please, come back later.</p>
{% endif %}

Para verificar se um array não é vazio:

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

Utilizando "not" para verificar se o valor é falso:

{% if not user.subscribed %}
    <p>You are not subscribed to our mailing list.</p>
{% endif %}

Para múltiplas condições você utilizar "and" ou "or":

{% if temperature > 18 and temperature < 27 %}
    <p>It's a nice day...</p>
{% endif %}

Múltiplos ramos:

{% if kenny.sick %}
    Kenny is sick.
{% elseif kenny.dead %}
    You killed Kenny!
{% else %}
    Kenny looks okay.
{% endif %}

Vaja aqui a documentação completa do if.

FOR 

Loop para exibir os itens em sequência:

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

Para uma sequência de números ou letras você utilizar o operador "..":

{% for i in 0..10 %}
    * {{ i }}
{% endfor %}
{% for letter in 'a'..'z' %}
    * {{ letter }}
{% endfor %}

Adicionando uma condição:

<ul>
    {% for user in users if user.active %}
        <li>{{ user.username|e }}</li>
    {% endfor %}
</ul>

Veja aqui a documentação completa do for.

DATE

Exemplos de formatações:

{{ post.published_at|date("m/d/Y") }}
{{ "now"|date("m/d/Y") }}
{{ post.published_at|date("m/d/Y", "Europe/Paris") }}

Veja aqui a documentação completa das formatações para date.

Exemplos de funções:

{% if date(user.created_at) < date('-2days') %}
    {# do something #}
{% endif %} 
{% if date(user.created_at) < date('-2days', 'Europe/Paris') %}
    {# do something #}
{% endif %}

Veja aqui a documentação completa das funções para date.

Como vimos nos exemplos acima, a sintaxe do Twig é mais simples comparada ao PHP, tornando seu aprendizado mais rápido e fácil.

Não deixe de conferir a sua documentação completa.

Até o próximo tutorial!

Login do usuário