缓存多语言模板

时间:2012-02-22 22:52:29

标签: php oop caching apc

我的环境中有一个名为language.php的类,它处理语言检测并包含适当的语言文件及其所有变量。

当模板未缓存时,我通过 APC 缓存它,并将缓存条目发送给访问者。

但现在当我尝试将我的环境设置为多语言,并且我将语言从 en-US 更改为 de-DE 然后 返回到en-US 我仍然可以获得缓存的 de-DE 模板。

是否有任何智能方法可以解决这个问题,我可以使用并详细说明?

修改 我的解析/缓存功能:http://pastebin.com/PpHJ14Wv

1 个答案:

答案 0 :(得分:1)

我认为您应该将模板作为2个不同的模板(或者您要支持的语言)来处理。例如,您可以缓存template-en.html和template-de.html,而不是缓存template.html。

使用url(example.com/en或example.com/de)或$ _SESSION ['lang']变量或类似的东西,以加载正确的缓存模板。

修改

像这样:

public function parseTemplate($requestedTemplate, $lang)
{
    $template = $requestedTemplate . '-' . $lang;
    $filename = $this->templateDir . $template . '.php';

    //and so on...
}