カテゴリ: Symfony 更新日: 2025/12/30

SymfonyでTwigテンプレートを表示する方法!初心者でもわかるHTMLの出力

SymfonyのコントローラでTwigテンプレートを返す方法
SymfonyのコントローラでTwigテンプレートを返す方法

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

生徒

「Symfonyで画面にHTMLを表示するには、どうしたらいいんですか?」

先生

「SymfonyではTwigというテンプレートエンジンを使って、HTMLを作成して表示できますよ。」

生徒

「Twig?テンプレートエンジン?それって何ですか?」

先生

「簡単に言うと、HTMLをきれいに分けて作れる便利な道具です。これから一緒に学んでいきましょう!」

1. Twig(ツウィッグ)とは何かを理解しよう

1. Twig(ツウィッグ)とは何かを理解しよう
1. Twig(ツウィッグ)とは何かを理解しよう

Twig(ツウィッグ)は、Symfony(シンフォニー)というPHPのフレームワークで使われるテンプレートエンジンです。テンプレートエンジンとは、HTMLの中にPHPのようなコードを埋め込める仕組みのことです。

HTMLを表示するときに、直接PHPを書いてしまうと、コードがゴチャゴチャになって見づらくなります。Twigを使えば、HTMLはHTMLらしく、見た目を作る専用の場所として保てるので、プログラムとデザインを分けてきれいに管理できます。

2. SymfonyのコントローラからTwigを使うには

2. SymfonyのコントローラからTwigを使うには
2. SymfonyのコントローラからTwigを使うには

Symfonyでは、コントローラと呼ばれる場所で「どの画面を表示するか」を決めます。

そして、HTMLを表示したいときは、Twigテンプレートを使って、コントローラから呼び出します。まずは基本の書き方を見てみましょう。


use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Routing\Annotation\Route;

class PageController extends AbstractController
{
    #[Route('/welcome', name: 'welcome_page')]
    public function welcome()
    {
        return $this->render('welcome.html.twig');
    }
}

ポイント解説:

  • AbstractControllerは、Symfonyでよく使われるコントローラの親クラスです。
  • render()メソッドは、Twigテンプレートを読み込んで表示する命令です。
  • welcome.html.twigは、後で作るテンプレートファイルの名前です。

3. Twigテンプレートファイルを作成しよう

3. Twigテンプレートファイルを作成しよう
3. Twigテンプレートファイルを作成しよう

コントローラでwelcome.html.twigと書いたので、実際にそのファイルを作成してHTMLの中身を書いていきます。Twigのテンプレートファイルは、templatesフォルダの中に作ります。

下記のようなHTMLを書いてみましょう。


{# templates/welcome.html.twig #}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>ようこそ</title>
</head>
<body>
    <h1>Symfonyへようこそ!</h1>
    <p>このページはTwigテンプレートで作成されています。</p>
</body>
</html>

このように書くと、/welcomeにアクセスしたときに、画面に「Symfonyへようこそ!」と表示されます。

4. Twigの中に変数を表示してみよう

4. Twigの中に変数を表示してみよう
4. Twigの中に変数を表示してみよう

テンプレートには、コントローラから渡した変数を埋め込むこともできます。たとえば、名前を表示したいときは次のようにします。


#[Route('/greet', name: 'greet_page')]
public function greet()
{
    return $this->render('greet.html.twig', [
        'name' => '太郎'
    ]);
}

このように、render()メソッドの第二引数にデータを入れると、テンプレートに渡すことができます。

それをテンプレート側で受け取って表示するには、下記のように書きます。


{# templates/greet.html.twig #}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>あいさつ</title>
</head>
<body>
    <h1>こんにちは、{{ name }}さん!</h1>
</body>
</html>

{{ name }}と書くことで、変数nameの中身「太郎」が表示され、「こんにちは、太郎さん!」という画面が出てきます。

5. Twigテンプレートを使うメリットをおさらい

5. Twigテンプレートを使うメリットをおさらい
5. Twigテンプレートを使うメリットをおさらい

Twigを使うと、HTMLの表示がすっきりして、管理もしやすくなります。特に大きなWebサイトを作るときには、とても重要です。

  • HTMLの中にPHPのゴチャゴチャしたコードがないので、見やすい
  • 変数やループなどが簡単に書ける
  • 共通部分(ヘッダーやフッター)をテンプレートとして使いまわせる

SymfonyとTwigを組み合わせることで、初心者でも分かりやすく、美しくWebページを作ることができます。

6. Twigテンプレートを使うときの注意点

6. Twigテンプレートを使うときの注意点
6. Twigテンプレートを使うときの注意点

Twigテンプレートを使うときは、ファイル名に必ず.html.twigという拡張子をつける必要があります。
また、テンプレートファイルはtemplatesフォルダの中に置くことがルールになっています。

もしテンプレートが見つからないときは、ファイルの場所や名前をもう一度確認してみましょう。

まとめ

まとめ
まとめ

SymfonyでTwigテンプレートを使って画面を表示する流れを学ぶことで、ウェブアプリケーション開発の基本となる「表示のしくみ」をしっかり理解できるようになります。Twigは、HTMLの構造を保ちながら動的なデータを埋め込めるため、初心者でも扱いやすく、複雑な画面作成にも耐えられる柔軟なテンプレートエンジンです。特に、コントローラから変数を渡して表示する一連の流れは、実際の開発で頻繁に登場する大切なポイントです。画面を作る担当であるTwigと、処理を行う担当であるコントローラが役割分担することで、プロジェクト全体の見通しがよくなり、保守性も高まります。

また、「変数を渡す」「表示する」という基本操作に慣れてくると、Twigの中で繰り返しや条件分岐などの便利な構文も自然に使えるようになります。テンプレートを整理し、HTMLをきれいに維持したまま開発するためには、Twigの基本を理解することが非常に重要です。初心者の方も、まずは簡単な画面を作りながら、コントローラとテンプレートの関係に慣れていくとよいでしょう。Twigの扱い方は、他のフレームワークでも役立つ考え方につながるため、今のうちにしっかり身につけておく価値があります。

Twigテンプレートの基本動作を復習するサンプル

ここでは、学んだ内容を振り返るために、Twigに変数を渡して表示する基本的なサンプルコードを再確認しておきます。コントローラとテンプレートがどのように連携しているのかを具体的に確認できる例です。


// コントローラ側:変数をTwigへ渡す例
#[Route('/profile', name: 'profile_page')]
public function profile()
{
    return $this->render('profile.html.twig', [
        'user' => '花子',
        'age' => 25
    ]);
}

{# templates/profile.html.twig #}
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>プロフィール</title>
</head>
<body>
    <h1>{{ user }}さんのプロフィール</h1>
    <p>年齢:{{ age }}歳</p>
</body>
</html>

このように、Twigを使うことで、コントローラで用意した値を画面に反映させる処理がとてもわかりやすく記述できます。変数の扱いに慣れてくると、画面へのデータ表示が直感的にできるので、初学者でもスムーズにWebページの開発を進められます。

さらに、Twigは「継承」や「共通レイアウト」などの仕組みも備えているため、複数ページの共通部分をまとめて管理することができ、開発効率が大幅に向上します。まずは基本をしっかり押さえ、徐々にステップアップしていくことで、Symfonyでのウェブ開発がより自由で楽しいものになっていくはずです。

先生と生徒の振り返り会話

生徒

「Twigを使うと、PHPのコードを直接HTMLに書かなくてすむから、画面がすごく見やすかったです!」

先生

「そうなんです。テンプレートエンジンの役割は、まさに“見た目の整理”です。HTMLをきれいな状態で保つための、とても役に立つ道具なんですよ。」

生徒

「コントローラから変数を渡す方法も覚えやすかったです。{{ name }}の書き方が一番印象に残りました!」

先生

「Twigの変数展開はとてもシンプルで扱いやすいですよね。今後は繰り返し処理や条件分岐も学んでいくと、もっとできることが増えていきますよ。」

生徒

「早くいろいろなページを作れるようになりたいです!実践しながら慣れていきます!」

先生

「その意気です。Twigに慣れることが、Web開発の大きな一歩になりますからね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

SymfonyでHTMLを画面に表示するにはどうすればよいですか?

SymfonyではTwigというテンプレートエンジンを使ってHTMLを表示します。コントローラからTwigテンプレートを指定して呼び出すことで、Web画面にHTMLを出力することができます。
関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
Laravelの認証状態をチェックする方法を完全解説!authとAuth::check()を初心者向けにやさしく説明
New2
CodeIgniter
CodeIgniterのコントローラクラスの作り方を完全ガイド!初心者でもわかる基礎から実践まで
New3
Symfony
Symfonyのフォームラベルを多言語対応!初心者でもわかる翻訳設定ガイド
New4
Laravel
Laravelでユーザー登録機能を作る方法!初心者向けにバリデーションとリダイレクトをやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのデータベース設定方法を完全ガイド!初心者でもわかる.envファイルの使い方
No.2
Java&Spring記事人気No2
Laravel
Laravelのビューとは?Bladeテンプレートの基本を解説
No.3
Java&Spring記事人気No3
Laravel
Laravelでセッションを扱う方法!保存方法と利用例を解説
No.4
Java&Spring記事人気No4
Laravel
Laravelのルート一覧を確認する方法!初心者でもわかるphp artisan route:listの使い方
No.5
Java&Spring記事人気No5
Laravel
Laravelでルーティングを設定する方法!web.phpと基本ルートの書き方を初心者向けに徹底解説
No.6
Java&Spring記事人気No6
Laravel
Laravelでログを出力する方法(Monolog・storage/logs)
No.7
Java&Spring記事人気No7
Laravel
LaravelでルートをBladeテンプレートに記述する方法(route関数)
No.8
Java&Spring記事人気No8
Laravel
Laravelのルートキャッシュ機能を活用してパフォーマンス改善!初心者でもわかる完全ガイド