【发布时间】:2017-05-31 00:57:51
【问题描述】:
symfony 可以加载不同的parameters.yml 吗?我有一个 SaaS 多租户 APP,我希望基于每个租户加载不同的 parameters.yml(带有配置数据库),以便在登录操作时将用户分派到正确的数据库。
非常感谢!
编辑:已解决!
我解决了在文件夹中安排不同租户配置的问题,例如:
app
---config
------tenantA
---------config.yml
---------config_dev.yml
---------config_prod.yml
---------parameters.yml
------tenantB
---------config.yml
---------config_dev.yml
---------config_prod.yml
---------parameters.yml
------tenantC
---------config.yml
---------config_dev.yml
---------config_prod.yml
---------parameters.yml
....
还有,修改kernelApp.php的加载器:
$loader->load($this->getRootDir().'/config/TENANT/config_'.$this->getEnvironment().'.yml');
我不知道这是否是一个好习惯,但效果很好!
【问题讨论】:
-
如果你想使用学说迁移,你会遇到问题,因为它独立于这个配置。我有一个解决方案,如果你想进行学说迁移,你可以在这里阅读,我要感谢你,因为你为我指出了使用多个数据库和相同源的正确方向 ;-) stackoverflow.com/questions/45633339/…
-
我认为你上面描述的
kernelApp.php方法会缓存你的配置。例如:如果tenantA配置被加载,它将被缓存并为tenantB加载......(承认帖子已经3岁了!)
标签: symfony parameters multi-tenant saas