Scroll
Macros em templates Twig
Da documentação oficial do Twig: «Macros são semelhantes a funções regulares em linguagens de programação. Eles são úteis para reutilizar fragmentos de templates HTML comuns em uma forma reutilizável...»
Exemplo de uma macro em um template Twig:
{% macro render_dialog(title, class='default') %}
<div class="ui-dialog {{ class }}">
<div class="ui-dialog-titlebar">
<h1 class="ui-dialog-title">{{ title }}</h1>
</div>
<div class="ui-dialog-content">
{{ caller() }}
</div>
</div>
{% endmacro %}
{% call render_dialog('Hello World') %}
This is a simple dialog rendered by using a macro!
{% endcall %}
Macros podem ser importadas de diferentes templates usando o comando import. Aqui está um exemplo simples de como usar isso em um template:
{% import "macros.twig" as macros %}
{{ macros.render_dialog('Hello World') }}
Macros também podem ser definidas em um template de layout, como um bloco de base, para que qualquer template que o estenda possa usá-lo. Macros podem aceitar argumentos, assim como funções PHP normais.
Mais informações sobre macros podem ser encontradas na documentação oficial do Twig.