php Smarty

PHPのテンプレートエンジンSmartyぢゃが、PHPやる時はよく使いますな。
しかしよく使うのぢゃが、ここ数年PHP自体やってなかったから思い出すのに昔のソースとか引っ張ってくるんぢゃが、これまたどこにいったのやら。
昔のソースの場所を思い出すのにも一苦労してしまったぞぃ。

ちゅうわけで、もうめんどくさいので最低限これありゃどうとでも使えるソースを残しておこうかの。

compile_dirとかcache_dirで指定したパス以下に、コンパイルされたファイルや、キャッシュファイルがSmartyによって作成されるので、このパスで指定したディレクトリには、この処理を実行するユーザーに対して書き込みできるよう権限を設定しておかないといけませんな。

GS/Smarty.class.php

<?php
    require_once('Smarty.class.php');

    /**
    * GS_Smarty
    * 
    * require_once('GS/Smarty.class.php');
    * 
    * $smarty = new GS_Smarty();
    * $smarty->assign('value', 'xxx');
    * $smarty->display('./xxx.tpl');
    * 
    * @author  gosshujin
    * @version $Id$
    * @package GS
    */
    class GS_Smarty extends Smarty
    {

        /**
        * Constructor
        * 
        * @access public
        */
        function GS_Smarty()
        {
            parent::__construct();                        // 親クラスのコンストラクタ呼び出し
            $this->template_dir     = './tpl';            // 読み込むテンプレートディレクトリパス
            $this->compile_dir      = './tpl_c';          // コンパイルするディレクトリパス
            $this->plugins_dir      = './plugins_dir';    // プラグインディレクトリパス
            $this->compile_check    = true;               // 毎回コンパイルするかしないかのフラグ
            $this->force_compile    = false;              // 毎回強制コンパイルするかしないかのフラグ
        //  $this->caching          = 0;                  // キャッシュするかしないかのフラグ
        //  $this->cache_dir        = './tpl_cache';      // キャッシュするファイルのディレクトリパス
        //  $this->cache_lifetime   = 10;                 // キャッシュの有効期限。-1は無期限、デフォルト値は3600秒
        //  $this->autoload_filters   = array( 'pre'=>array('sjis2euc'), 'output'=>array('euc2sjis') );  // コンパイル前、出力時などにフィルタ処理する設定。
        //  $this->left_delimiter     = '{';        // Smarty開きタグのデリミタ。デフォルトは {
        //  $this->right_delimiter    = '}';        // Smarty閉じタグのデリミタ。デフォルトは }
        //  $this->request_use_auto_globals    = false;                // 確かスーパーグローバル変数使うかどうかの設定。デフォルトは false。
        
        //  $this->default_template_handler_func    = ''; // テンプレートリソースからテンプレートの取得に失敗した際、テンプレートのコンテンツを取り戻するために呼び出される関数を指定する。
            
        //  $this->autoload_filters = array( 'pre'=>array('sjis2euc'), 'post'=>array('euc2sjis') );

        // オブジェクトを登録する (参照によって)
        // いくらかのメソッド又はプロパティを制限したい場合、それらを配列の値としてリストする
        //  $xxx = new XXX();
        //  $this->register_object('xxx', $xxx, array('xxx','yyy', 'zzz'));
        }

    }