Symfony:禁用环境变量缓存

Y. *_*. K 5 php dependency-injection symfony

我正在 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 有两个选项:完全禁用配置缓存,或禁用缓存环境变量。
我认为后一种选择更可取,但我什至不知道如何完全或部分禁用缓存。

1ed*_*1ed 1

在 Symfony 中,不可能在服务定义中使用动态环境变量(请参阅symfony/symfony#16403(评论)原因)。您可以尝试使用Incenteev/DynamicParametersBundle,但我没有这方面的经验。