ZendFrameworkのSmartyのプラグインで自作マクロというか関数というか

| | コメント(0) | トラックバック(0)
Smartyのテンプレート内で使える自作関数というかマクロというかそういうのはプラグインというらしい。
けっこう見つけづらかった



 これを見るとプラグインの作り方などはわかると思う。
http://d.hatena.ne.jp/okyohei/20080528

あと、SmartyのHOME直下にあるplugins内の各ソース(escapeとか)も見てみれば絶対わかる。
わからなかったらわかりそうなやつに聞いてみなさい。

問題は、パスをどう通すか。phpのinclude_pathを通しても使えるのは
使えるのだけど、パフォーマンス的によろしくない。
どの程度よろしくないのかわからないけど。

というわけで、ZendFrameworkでSmartyを使っている場合のパスの通し方の一例。

Zend FrameworkのZend_ViewをSmartyにで作ったSmarty用のラッパー(Xxx_View_Smarty)
    /**
     * コンストラクタ
     *
     * @param string $tmplPath
     * @param array $extraParams
     * @return void
     */
    public function __construct()
    {
        $config = new Zend_Config_Ini(
        dirname(__FILE__). '/../../../config/application.ini', SITE_ENVIRONMENT);
       
        $this->_smarty = new Smarty;
       
        $this->_smarty->compile_dir = $config->smarty->compile_dir;
        $this->_smarty->cache_dir = $config->smarty->cache_dir;
        $this->_smarty->caching = $config->smarty->caching;
        $this->_smarty->compile_check = $config->smarty->compile_check;
        $this->_smarty->cache_lifetime = $config->smarty->cache_lifetime;
           $this->_smarty->plugins_dir[] = $config->smarty->plugins_dir;
        
        $this->_smarty->left_delimiter = '<{';
        $this->_smarty->right_delimiter = '}>';
        if (null !== $tmplPath) {
            $this->setScriptPath($tmplPath);
        }



コンフィグファイル(application.ini)抜粋
[develop]
smarty.compile_dir = path\to\compile_dir
smarty.cache_dir = path\to\cache_dir
smarty.caching     = 1
smarty.compile_check = true
smarty.cache_lifetime = 1
smarty.plugins_dir = path\to\plugins

こんな感じで。


トラックバック(0)

このブログ記事を参照しているブログ一覧: ZendFrameworkのSmartyのプラグインで自作マクロというか関数というか

このブログ記事に対するトラックバックURL: http://hirop0164.s326.xrea.com/mt/mt-tb.cgi/236

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ぴろしが2009年1月 7日 16:36に書いたブログ記事です。

ひとつ前のブログ記事は「PostgreSQLでdigestとかのハッシュ関数を使う」です。

次のブログ記事は「buttonタグのボタンを押すとsubmitされちゃう」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。