嘿,我試圖做這樣的事情:是否可以在派生構造函數中設置smarty目錄?
<?php
class MySmarty extends Smarty {
public function __construct() {
parent::__construct();
$smartyRoot = '/home/smarty/';
parent::setTemplateDir($smartyRoot. "/templates/");
parent::setCompileDir($smartyRoot."/templates_c/");
parent::setCacheDir($smartyRoot."/cache/");
parent::setConfigDir($smartyRoot."/configs/");
}
}
$smarty = new MySmarty();
$smarty->display("index.tpl");
?>
但它無法用SmartyException("Unable to load template file")
。從smarty_internal_template.php
行163,它看起來像在檢查任何顯示之前檢查是否存在$this
。
我的系統似乎是正確設置,因爲這樣做的建議方式(調用$smarty->set*Dir($smartyRoot.'foo');
作品
任何想法
呵呵。不,我不完全確定,我只是以爲我已經消除了我所有的其他選擇。做你做的實際工作(即'$ this - > * _ dir ='foo';'而不是'$ this-> setFooDir();'這有點奇怪 – quodlibetor 2011-03-16 18:44:51