この記事は「
Macros in Twig Templates
」の翻訳です。
この記事の目次
最終更新日 2016年12月20日
Twig公式ドキュメントより:
「マクロは通常のプログラミング言語の関数と似ています。頻繁に使用されるHTML構文を再利用可能な要素として設定するのに便利です。」
{% macro input(name, value, type, size) %}
<input type="{{ type|default('text') }}" name="{{ name }}" value="{{ value|e }}" size="{{ size|default(20) }}" />
{% endmacro %}
マクロはネイティブのPHP関数といくつか異なる点があります:
- デフォルトの引数値は 、マクロ本体のdefaultフィルタを使用して定義され ます。
- マクロの引数は常にオプションです。
- 余分な位置引数がマクロに渡されると、それらは値のリストとして特別なvarargs 変数になります。
しかし、PHP関数と同様に、マクロは現在のテンプレート変数にアクセスすることもできません。特殊な_context 変数を使用してコンテキスト全体を引数として渡すことは可能です。
Drupal 8では、メインナビゲーション(menu.html.twigファイルを参照)などで、マクロを使用しています。