【问题标题】:Symfony2 cache and parametersSymfony2 缓存和参数
【发布时间】:2015-01-15 22:55:06
【问题描述】:

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

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

但是这个参数被缓存了,所以访问 a.site.com 然后 b.site.com 会显示 A 的内容而不是 B 的内容。

我可以使用其他方法吗?

有没有办法我可以将此参数添加到缓存的哈希值或类似的东西,以便当应用程序内的参数更改时,内容可以更改。

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

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

【问题讨论】:

    标签: php symfony caching parameters


    【解决方案1】:

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

    像这样:

    echo $request->getUri();
    

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

    【讨论】:

      【解决方案2】:

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

      class GameSystem {
      
          public function getGameSystemName()
          {
              $ar = explode(".", $_SERVER['HTTP_HOST']);
              $first = reset($ar);
      
              $game_system_short_name = strtolower($first);
      
              return $game_system_short_name;
          }
      }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-20
        • 2014-10-06
        • 2016-05-07
        • 2013-11-18
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多