Twigテンプレートのマクロ

Twigテンプレートのマクロ
この記事は「 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ファイルを参照)などで、マクロを使用しています。

Kentaro Inoueの写真

この記事を書いた人 : Kentaro Inoue

ANNAI株式会社
マーケティングマネージャー
サービスの設計・企画、マーケティング、採用戦略の立案などを担当。普段は新潟で猫と一緒に、時々海外からリモートで働いています。好きなモジュールはRulesとFlagです。

関連コンテンツ