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

    ブログ内検索

    最近の記事

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

    Blog Translation

    Powered By FC2ブログ

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


    FC2ブログ LOGIN

    with Ajax Amazon

    CodeIgniterにSmartyを組み込む方法

    このエントリーを含むはてなブックマーク はてなブックマーク - CodeIgniterにSmartyを組み込む方法 あとで読む
    PHP自体が、テンプレートエンジンみたいなもんだから、Smartyは必要ないといえば必要ないんだけど、どうしても使わないといけない場合もある。

    Smarty: PHP Template Engine
    http://www.smarty.net/

    Webデザイナー等のノンプログラマーの方に使ってもらうシステムで、
    HTMLテンプレートファイルに、PHPコードを一切記述しないで、
    PHPから渡されるデータを埋め込む必要がある場合、
    PHPコードの代わりに、Smartyの簡易DSLを使って、データを埋め込んでもらう、とか。

    ドメイン固有言語 - Wikipedia

    ドメイン固有言語(domain-specific language、DSL)とは、特定のタスク向けに設計されたコンピュータ言語を意味する。
    C言語やJavaのような汎用のプログラミング言語の対照とされる。
    DSL は一種類のタスクをうまく実行することに集中したものであり、古くから存在したが、ドメイン固有モデリングの発達と共にDSLという用語も広く知られるようになってきた。



    PHPを覚えるのも、Smartyの記法を覚えるのも、プログラマーから見ると、大した違いはないように思えるのだが、
    Smartyの記法の方が、覚えやすいというのであれば、Smartyを採用するしかないよね?

    Smartyで使いたい機能は、「fetch()」だけでOK

    fetch() | Smarty

    Smarty クラスメソッド
    fetch() — テンプレートの出力を返します。

    説明
    string fetch(string template, string cache_id, string compile_id);
    これは、テンプレートを表示するのではなくその出力を返します。
    第1パラメータには、有効な テンプレートリソース の種類を含んだパスを指定する事ができます。
    任意の第2パラメータには キャッシュID を渡す事ができます。
    任意の第3パラメータとして $compile_id を渡すことができます。
    異なる言語でコンパイルされた別々のテンプレートが存在するような、 同じテンプレートの異なるバージョンをコンパイルしたい場合に利用します。
    この関数をコールする度に compile_id を渡す代わりに、一度 $compile_id 変数をセットすることもできます。

    Example 13.18. fetch()
    <?php
    include('Smarty.class.php');
    $smarty = new Smarty;
    $smarty->setCaching(true);

    // URL ごとに個別のキャッシュ ID を設定します
    $cache_id = md5($_SERVER['REQUEST_URI']);

    // 出力を取り込みます
    $output = $smarty->fetch('index.tpl', $cache_id);


    // ここで$outputについて何かの処理を行います
    echo $output;
    ?>



    上記の例だと、$outputを指定したファイル名で、HTMLファイルとして保存するとか、そういう目的でSmartyを使えればOK
    キャッシュファイルの作成は不要。

    Chapter 14. キャッシュ | Smarty

    キャッシュは $caching を Smarty::CACHING_OFF にセットして無効にする




    ●CodeIgniterにSmartyを組み込む
    で、CodeIgniterとSmartyを一緒に使うには、どうしたら良いか?調べてみた。

    CodeIgniter Smarty - Google検索
    ↓↓↓
    Smarty連携 | 応用編 CodeIgniter Guide 徹底ガイド!

    CodeIgniterでSmartyを使う方法 | Binbo-Special

    この辺りを参考にしたらいいかな?
    関連記事

    コメント

    コメントの投稿


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

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/1159-565bc35c

    FC2Ad