Symfony2缓存和参数

时间:2015-01-15 22:55:07

标签: php symfony caching parameters

我设置了一个奇怪的应用程序,多个子域都指向同一个Symfony2安装。

子域只是更改应用程序中的单个参数,以便加载不同的内容。

此参数正在缓存中,因此访问a.site.com然后访问b.site.com会使A的内容显示而不是B

我可以使用另一种方法吗?

有没有办法可以将此参数添加到缓存的哈希值或类似内容中,这样当参数在应用内发生变化时,内容就会发生变化。

我正在使用此方法将常量从子域传递到Symfony2应用程序

How to pass a PHP constant as service argument in Symfony 2?

2 个答案:

答案 0 :(得分:0)

您可以使用Symfony的请求对象来获取URL并解析子域的URL。使用它来创建配置参数,因为它不会被缓存。

像这样:

echo $request->getUri();

Symfony的API可以是一个很好的资源,但有点难以阅读。 http://api.symfony.com/2.6/Symfony/Component/HttpFoundation/Request.html

答案 1 :(得分:0)

我最终编写了一个服务来解析主机名,然后我的控制器中就可以使用该服务了。

class GameSystem {

    public function getGameSystemName()
    {
        $ar = explode(".", $_SERVER['HTTP_HOST']);
        $first = reset($ar);

        $game_system_short_name = strtolower($first);

        return $game_system_short_name;
    }
}

最初我曾尝试使用每个子域的索引文件中设置的常量值。但这是失败的,并且有一些非常奇怪的效果。