ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    継承できるテンプレート「Twig」

    このエントリーを含むはてなブックマーク はてなブックマーク - 継承できるテンプレート「Twig」 あとで読む
    MVCでWebアプリを作るとき、ViewでSmartyのようなテンプレートシステムを使うと便利だと思っていた。
    しかし、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で作る携帯サイトデベロッパーズガイドPHPで作る携帯サイトデベロッパーズガイド
    (2009/12)
    滝下 真玄

    商品詳細を見る

    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/464-e8c4a85e

    FC2Ad