読者です 読者をやめる 読者になる 読者になる

テンプレートエンジンを素のPHPからTwigに乗り換えた理由

そもそもPHP自体がテンプレートみたいなものなのにさらにテンプレートエンジンとか使う理由って何ですか?

http://d.hatena.ne.jp/xmalloc/20091225/1261709421

nimpadでは、以前はテンプレートエンジンとして素のPHPを使っていましたが、最近Twigというテンプレートエンジンに切り替えました。
理由は幾つかあるのですがその中から主なものを挙げてみました。

テンプレートの継承ができる

テンプレートを継承できるのは便利です。レイアウトなどは同じだけど細かいところは違う、というようなテンプレートを書くのが格段に楽になります。
素のPHPでレイアウトなどを共有する場合、includeする部品ひとつひとつを他のファイルに切り出してやる必要があるんですが、継承に比べるとこれは面倒です。
素のPHPからTwigに乗り換えた一番大きな理由はこれです。

変数を勝手にエスケープしてくれるオプションがある

素のPHPの場合は手作業でエスケープする必要があるのですが、Twigの場合は変数を勝手にエスケープしてくれる機能があります。
これは楽ですし、手作業によるエスケープ漏れの可能性も減るので便利です。

キャッシュのオプションを効かせることで素のPHPに負けない程度の速さになる

Twigがテンプレートをレンダリングする工程は、テンプレートをパースし、PHPのコードにトランスレートして、そしてそれを実行する、という風になっています。
キャッシュのオプションを効かせることで、そのテンプレートから生成されるPHPのコードがキャッシュされるので素のPHPに負けない程度の速さが出ます。

<?php h($hoge) ?>とかよりも{{ hoge }}の方が楽

これはまあタイプ数は多いより少ない方がいいですよねって言う話です。

結論

Twig結構いいすよ。