ほげほげ

プログラミング、英会話、ヨガ、料理などの備忘録など。

テンプレートエンジンtwigの継承方法

twigはベースとなるテンプレートを作り、それを継承して書き換えたい場所だけ書き換えるといった使い方が可能だ。
共通部分の流用が簡単に出来るので、重宝する。

継承元テンプレート(base.twig)

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>title</title>
</head>
<body>

{# 書き換え対象 #}
{% block main %}
{% endblock main %}

</body>
</html>

継承先テンプレート

{# base.twigを継承する #}
{% extends "base.twig" %}

{# mainブロックを上書きする #}
{% block main %}
  body内のメインコンテンツが上書きされる
{% endblock main %}

今しらべたらsmartyにもextendsってあったのですね。知らなかった。