我的环境中有一个名为language.php的类,它处理语言检测并包含适当的语言文件及其所有变量。
当模板未缓存时,我通过 APC 缓存它,并将缓存条目发送给访问者。
但现在当我尝试将我的环境设置为多语言,并且我将语言从 en-US 更改为 de-DE 然后 返回到en-US 我仍然可以获得缓存的 de-DE 模板。
是否有任何智能方法可以解决这个问题,我可以使用并详细说明?
修改 我的解析/缓存功能:http://pastebin.com/PpHJ14Wv
答案 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...
}