カテゴリ: Symfony 更新日: 2026/02/15

Symfony Twigテンプレートのベースレイアウト作成方法を完全解説!初心者でもわかる画面共通化の基本

Twigテンプレートのベースレイアウトを作成する方法
Twigテンプレートのベースレイアウトを作成する方法

先生と生徒の会話形式で理解しよう

生徒

「SymfonyでWebページを作ると、毎回同じヘッダーやメニューを書くのが大変です…」

先生

「SymfonyではTwigテンプレートのベースレイアウトを使うことで、その悩みを解決できます。」

生徒

「ベースレイアウトって何ですか?パソコン初心者でも使えますか?」

先生

「大丈夫です。画面の型紙を作るイメージで、順番に説明していきます。」

1. Twigテンプレートとベースレイアウトとは?

1. Twigテンプレートとベースレイアウトとは?
1. Twigテンプレートとベースレイアウトとは?

Symfonyで画面を作るときに使うのがTwigテンプレートです。Twigとは、HTMLの中に少しだけ特別な書き方を追加できる仕組みで、画面表示を分かりやすく管理できます。 ベースレイアウトとは、ヘッダー・フッター・メニューなど、どのページでも共通して使う部分を一つにまとめた土台のことです。 例えるなら、ノートの表紙や罫線のような存在で、中身だけを差し替えて使い回せます。

2. SymfonyにおけるTwigの役割

2. SymfonyにおけるTwigの役割
2. SymfonyにおけるTwigの役割

Symfonyは、処理を行うPHPと、画面を表示するTwigを分けて管理します。これにより、プログラム初心者でも「見た目」と「動き」を混乱せずに理解できます。 TwigはHTMLに近い書き方なので、パソコンを触ったことがない人でも、文章を書く感覚で画面を作れます。 ファイルは通常、templatesフォルダの中に保存されます。

3. ベースレイアウト用Twigファイルを作成する

3. ベースレイアウト用Twigファイルを作成する
3. ベースレイアウト用Twigファイルを作成する

まず、画面の共通部分をまとめるためのファイルを作ります。一般的にはbase.html.twigという名前を使います。 このファイルが、すべてのページの土台になります。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{% block title %}Symfony入門{% endblock %}</title>
</head>
<body>
    <header>
        <h1>サンプルサイト</h1>
    </header>

    {% block body %}{% endblock %}

    <footer>
        <p>© Symfony Twig練習</p>
    </footer>
</body>
</html>

4. block(ブロック)の考え方を理解する

4. block(ブロック)の考え方を理解する
4. block(ブロック)の考え方を理解する

blockとは、後から内容を差し替えられる場所の目印です。 「ここは空欄にしておいて、あとでページごとに内容を書く」という意味になります。 初心者の方は「付せんを貼る場所」と考えると分かりやすいです。

5. 子テンプレートでベースレイアウトを使う

5. 子テンプレートでベースレイアウトを使う
5. 子テンプレートでベースレイアウトを使う

次に、ベースレイアウトを利用するページを作ります。 extendsを使うことで、先ほど作った型紙を読み込みます。


{% extends 'base.html.twig' %}

{% block title %}トップページ{% endblock %}

{% block body %}
<p>これはトップページの内容です。</p>
{% endblock %}

6. 複数ページで同じレイアウトを使うメリット

6. 複数ページで同じレイアウトを使うメリット
6. 複数ページで同じレイアウトを使うメリット

ベースレイアウトを使うと、デザイン変更が一か所で済みます。 例えば、ヘッダーの文字を変えたい場合でも、base.html.twigを直すだけで全ページに反映されます。 修正ミスが減り、作業時間も短くなります。

7. TwigテンプレートとSymfonyコントローラの関係

7. TwigテンプレートとSymfonyコントローラの関係
7. TwigテンプレートとSymfonyコントローラの関係

Symfonyでは、コントローラと呼ばれるPHPファイルからTwigを呼び出します。 コントローラは「どの画面を表示するか」を決める役割です。


return $this->render('sample/index.html.twig');

8. 初心者がつまずきやすいポイント

8. 初心者がつまずきやすいポイント
8. 初心者がつまずきやすいポイント

よくある失敗は、ファイル名の間違いや、blockの書き忘れです。 Twigはエラー内容を画面に表示してくれるので、表示された英単語を落ち着いて確認しましょう。 最初は完璧を目指さず、動くことを優先すると理解が進みます。

カテゴリの一覧へ
新着記事
New1
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New2
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New3
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New4
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.4
Java&Spring記事人気No4
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.6
Java&Spring記事人気No6
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelでコントローラを作成する方法(artisanコマンド)