Symfony Twig入門|条件分岐とループをやさしく理解するテンプレート活用術
生徒
「SymfonyのTwigって聞いたことはあるんですが、何ができるものなんですか?」
先生
「Twigは、画面に表示するHTMLを作るための仕組みで、条件分岐や繰り返しも簡単に書けます。」
生徒
「プログラミングをやったことがなくても使えますか?」
先生
「大丈夫です。今日はTwigの条件分岐とループを、例え話を交えながら説明します。」
1. Twigとは何かを超やさしく説明
Twig(トゥイッグ)は、Symfonyで使われるテンプレートエンジンです。 テンプレートエンジンとは、「画面に表示する設計図」のようなものです。 PHPだけでHTMLを書くとごちゃごちゃしやすくなりますが、Twigを使うと 「表示専用のファイル」として整理できます。
例えるなら、レストランでいう「料理人」と「メニュー表」の関係です。 PHPは料理人で、Twigはお客さんに見せるメニュー表です。 Twigでは、条件によって表示を変えたり、同じ形を何度も並べたりできます。
2. Twigの基本構文を知ろう
Twigでは、特別な記号を使って処理を書きます。
表示したい値は {{ }}、命令は {% %} を使います。
この違いを知るだけで、Twigの読みやすさが一気に上がります。
{{ }} は「中身を表示する箱」、 {% %} は「指示を書くメモ」だと思ってください。
3. Twigで条件分岐(if文)を使う
条件分岐とは、「もし〜だったら表示する」という考え方です。
雨の日に傘を持つかどうかを決める感覚と同じです。
Twigでは if を使って条件分岐を書きます。
{% if isLogin %}
<p>ログイン中です</p>
{% endif %}
この例では、ログインしているときだけ文章が表示されます。 条件が合わない場合は、何も表示されません。
4. elseとelseifで分かれ道を作る
条件が一つだけでなく、「そうでなければ別の表示」をしたいときもあります。
そんなときに使うのが else や elseif です。
信号機で「赤・青・黄色」を判断するようなイメージです。
{% if age < 20 %}
未成年です
{% else %}
成人です
{% endif %}
条件に合う場所だけが表示されるので、画面がスッキリします。
5. Twigのループ(for文)で繰り返し表示
同じ形のデータを何度も表示したいときは、ループを使います。
これは「名簿を上から順番に読む」ような感覚です。
Twigでは for を使って繰り返しを書きます。
{% for name in names %}
<p>{{ name }}</p>
{% endfor %}
配列の中身を一つずつ取り出して表示できます。 手作業で何行も書かなくてよいので、とても便利です。
6. ループの中で条件分岐を使う
Twigでは、ループの中に条件分岐を書くこともできます。 これは「並んでいる人の中で、大人だけに案内する」ようなイメージです。
{% for user in users %}
{% if user.active %}
<p>{{ user.name }}:有効</p>
{% else %}
<p>{{ user.name }}:無効</p>
{% endif %}
{% endfor %}
一覧表示と条件分岐を組み合わせることで、実用的な画面が作れます。
7. 初心者がつまずきやすいポイント
Twigでよくある失敗は、記号の書き間違いです。
{{ }} と {% %} を逆に書くとエラーになります。
また、閉じ忘れも多いので、endif や endfor を
忘れないようにしましょう。
エラーが出たら「どこからどこまでが条件か」を指で追って確認すると理解しやすくなります。
8. Twigを使うメリットを実感しよう
Twigを使うと、画面の見た目と処理の役割が分かれます。 そのため、後から見直しても内容が理解しやすくなります。 SymfonyとTwigを組み合わせることで、保守しやすいWebアプリが作れます。
条件分岐とループを使いこなせるようになると、 表示の自由度が一気に広がります。