我想从parameters.yml更改som parapeters,具体取决于访问者用来访问我的域名。
实际上,我只需要更改数据库。如果用户投掷www.domain1.com我需要使用database1但是如果他来扔www.domain2.com我需要使用相同的代码但是使用database2。
有可能吗?
答案 0 :(得分:0)
你有答案。只需使用域等其他参数配置另一个内核。但是symfony说:
不再推荐使用多个内核创建应用程序 Symfony的。考虑改为创建多个小型应用程序。
阅读此doc
之后,您只需要在加载器函数中加载您需要考虑该域参数的文件。
希望有所帮助
被修改
您还可以阅读此another doc并创建新环境。认为这对你更好。
希望它有所帮助!
答案 1 :(得分:0)
您想要实现的是多租户应用程序。
在配置文件中,您应该为数据库创建两个连接,一个用于主数据库,其中包含应用程序共享数据,另一个是动态的,用于租户特定数据。
doctrine:
dbal:
default_connection: default
connections:
default:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
dynamic_conn:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: ~
user: "%database_user%"
password: "%database_password%"
charset: UTF8
# if using pdo_sqlite as your database driver:
# 1. add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# 2. Uncomment database_path in parameters.yml.dist
# 3. Uncomment next line:
# path: "%database_path%"
orm:
default_entity_manager: default
auto_generate_proxy_classes: "%kernel.debug%"
entity_managers:
default:
connection: default
mappings:
MyBundle: ~
dynamic_em:
connection: dynamic_conn
mappings:
MyBundle: ~
现在你必须通过监听请求和检查域来设置动态切换数据库的服务,
我建议您查看此存储库,它是您尝试实现的内容的一个示例https://github.com/uirapuru/multidb。