繼承父類配置smarty


繼承父類然後重寫其私有屬性是不可能的。在不改其源代碼的情況下,這就需要使用smarty提供的兩個接口函數。

setTemplateDir()和setCompileDir()

配置如下:

class Mysmarty extends Smarty{

                   publicfunction __construct(){

                            parent::__construct();

                            $this->setTemplateDir= './templates';

                            $this->setCompileDir= './compile';                      

                   }
         }

源碼中如下:

private $template_dir = array('./templates/');

 private $compile_dir = './templates_c/';


public functionsetTemplateDir($template_dir)

    {

       $this->template_dir = array();

       foreach ((array) $template_dir as $k => $v) {

           $this->template_dir[$k] = rtrim($v, '/\\') . DS;

       }

        $this->joined_template_dir = join(' # ',$this->template_dir);

       return $this;

    }

public function setCompileDir($compile_dir)

    {

       $this->compile_dir = rtrim($compile_dir, '/\\') . DS;

       if (!isset(Smarty::$_muted_directories[$this->compile_dir])) {

           Smarty::$_muted_directories[$this->compile_dir] = null;

        }

 

       return $this;

    }


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章