しかし、Smarty独自のタグを覚えるまでもなく、工夫すれば素のPHP構文でも十分だと思うようになった。
CodeIgniter › ビューファイル向けの代替のPHP構文
CodeIgniter › テンプレートパーサクラス
●簡単にできることを複雑にやる必要はない
ページのキャッシュ機能とか、Smartyでできることは全てPHPでもできる。
敢えてテンプレートシステムを使う利便性はあるだろうか?
●継承できるテンプレート
TwigというPHPテンプレートシステムがあった。
http://www.twig-project.org/
PHPテンプレートエンジンTwigをいじってみました - Unou Labs
symfonyの開発元であるSensio Labsから、PHPのテンプレートエンジンTwigが出ていた
テンプレート継承
なるほど、クラスを生成して普通の継承を行っているんですね。
よく考えれば当たり前な気がしますが正直、Smartyなどのテンプレートエンジンは素のPHPっぽいテンプレートを返すのでクラスを吐き出すというのが自分的にはとても新鮮でした。
テンプレートに「継承」というアイデアを導入したと。
テンプレートエンジンを素のPHPからTwigに乗り換えた理由
テンプレートを継承できるのは便利です。
レイアウトなどは同じだけど細かいところは違う、というようなテンプレートを書くのが格段に楽になります。
素のPHPでレイアウトなどを共有する場合、includeする部品ひとつひとつを他のファイルに切り出してやる必要があるんですが、継承に比べるとこれは面倒です。
Twigを試す
簡単な説明
* Twig_Environment, Twig_Loader, Twig_Exntension, Twig_Templateの4つからなる。
* Twig_Environmentは、Twigのかなめ。このオブジェクトでテンプレートをロードする。
* Twig_Loaderは、テンプレートをどのようにロードするか管理する。
* Twig_Exntensionは、Twigテンプレートを拡張するためのもの。
* Twig_Environmentでロードしたテンプレートは、Twig_Templateのオブジェクトとしてあつかう。
* Twig_Templateのrenderメソッドで、テンプレートを適用する。
Twigの面白いところは、元記事にもあるようにテンプレートの継承。
Twigの継承が重宝する事例には、どんなものがあるだろうか?
・Drupal等のCMSのように、ブロック(表示データの塊)を配置してページを組み立てる場合
・Viewの切替えが多発する携帯サイト
・ローカリゼーション(サイトの国際化、多言語ページ対応)
とか?
![]() | PHPで作る携帯サイトデベロッパーズガイド (2009/12) 滝下 真玄 商品詳細を見る |
- 関連記事
-
- CodeIgniter2.0リリース
- PHPで数値(数字)を判定する方法
- NetBeansでPHP
- PHPで関数の呼び出し元を調べる方法
- DooPHPのコールグラフ
- PHPをC++に変換するHipHop for PHP
- PHPのプロファイラー「XHProf」の使い方
- 継承できるテンプレート「Twig」
- CodeIgniterのMatchBoxとHMVC
- 祝!1万部超え『PHP逆引きレシピ』プレゼントキャンペーン
- CodeIgniterをHMVCでモジュール化
- PHPで文字コードをSJISからUTF8に変換する方法
- PHPで配列の重複を削除する方法
- Fatal error: Allowed memory size of 16777216 bytes exhausted
- PHPのstrlen関数で全角文字が3バイトになる件