Symfony:禁用缓存中的环境变量

时间:2016-06-02 15:42:31

标签: php symfony dependency-injection

我在nginx / php-fpm上运行Symfony 2.8.6应用程序。

有多个域已解析到此服务器中,基本上我想要做的是根据用于访问的域来更改RDB配置。

所以我的nginx.conf有像fastcgi_param SYMFONY__SOME__PARAM $host这样的行,但我有问题 此参数注入已缓存,无法按预期工作。

例如,有两个域a.example.comb.example.com,它们指向我的服务器。 我希望它通过不同的域访问时连接到不同的MySQL服务器,但它会忽略域并始终连接到同一服务器。

我已确认:

  • Nginx正确传递变量。
  • var_dump($_SERVER['SYMFONY__SOME__PARAM'])的输出会按预期更改。
  • 参数存储在app/cache/prod/appProdProjectContainer.php

AFAIS有两种选择:完全禁用配置缓存,或禁用缓存环境变量 我认为后一个选项更受欢迎,但我甚至不知道如何禁用缓存,无论是全部还是部分。

2 个答案:

答案 0 :(得分:1)

在Symfony中无法在服务定义中使用动态环境变量(请参阅symfony/symfony#16403 (comment)原因)。您可以尝试使用Incenteev/DynamicParametersBundle,但我没有经验。

答案 1 :(得分:0)

如何更改每个environemnt的缓存目录。

fastcgi_param SYMFONY__CACHE_DIR /path/to/cache