Smarty - 更改缓存目录
Smarty - change cache directory
我正在为一个网站使用 Smarty,但我很生气每次启动 Smarty 时都必须声明模板目录、缓存目录和编译目录,就像这样:
$smarty = new Smarty();
$smarty->setCacheDir(__DIR__ . '/cache/smarty/');
$smarty->setCompileDir(__DIR__ . '/cache/smarty_c/');
$smarty->setTemplateDir(__DIR__ . '/templates/');
有没有办法(例如,通过在每个页面上加载的配置文件中定义变量)一劳永逸地告诉 Smarty 这些目录是哪些,这样我就不必每次都告诉它时间?
我通过创建一个扩展了 Smarty class 的新 class 解决了这个问题,但我仍然愿意接受新的答案。
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();
}
}
我正在为一个网站使用 Smarty,但我很生气每次启动 Smarty 时都必须声明模板目录、缓存目录和编译目录,就像这样:
$smarty = new Smarty();
$smarty->setCacheDir(__DIR__ . '/cache/smarty/');
$smarty->setCompileDir(__DIR__ . '/cache/smarty_c/');
$smarty->setTemplateDir(__DIR__ . '/templates/');
有没有办法(例如,通过在每个页面上加载的配置文件中定义变量)一劳永逸地告诉 Smarty 这些目录是哪些,这样我就不必每次都告诉它时间?
我通过创建一个扩展了 Smarty class 的新 class 解决了这个问题,但我仍然愿意接受新的答案。
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();
}
}