2017-03-08 7 views
0

ので、同じように、私はSmartyのを開始するたびに、私はウェブサイトのためのSmartyを使用していますが、私は、私は、テンプレートのディレクトリを宣言する必要がイライラしてる、キャッシュdirとコンパイルディレクトリ:Smartyの - 変更のキャッシュディレクトリ

$smarty = new Smarty(); 
$smarty->setCacheDir(__DIR__ . '/cache/smarty/'); 
$smarty->setCompileDir(__DIR__ . '/cache/smarty_c/'); 
$smarty->setTemplateDir(__DIR__ . '/templates/'); 

Smartyを一度に、そしてこれらのディレクトリのすべてを通知するために、(たとえば、すべてのページにロードされる設定ファイルに変数を定義することによって)方法があるので、毎回通知する必要はありませんか?

+0

すべてのサイトで同じスマートインスタンスにアクセスできますか?あるいは毎回新しいSmarty()をやっていますか? – m13r

+0

毎回Smartyを開始します(私はグローバル変数として保持しません) –

答えて

0

Smartyクラスを拡張した新しいクラスを作成することで問題は多少解決されましたが、私はまだ新しい種類の回答に開放されています。

class MySmarty extends Smarty 
{ 
    const SMARTY_TEMPLATES = __DIR__ . '/../templates/'; 
    const SMARTY_COMPILED = __DIR__ . '/../cache/smarty_c/'; 
    const SMARTY_CACHE  = __DIR__ . '/../cache/smarty/'; 

    public function __construct() 
    { 
     $this->setTemplateDir(self::SMARTY_TEMPLATES); 
     $this->setCompileDir(self::SMARTY_COMPILED); 
     $this->setCacheDir(self::SMARTY_CACHE); 
     parent::__construct(); 
    } 
} 
関連する問題