首先,你应该使用教义
OCI8 PHP驱动程序
如果您想连接到Oracle数据库(我不知道它是否完全支持您的用例)。
第二,你可以简单地
从外部设置env变量
,例如,首先在各自的_´config.yml_´中添加导入部分下面的行:
imports:
- { resource: readEnvParams.php }
然后在同一个文件夹中创建一个_´readenvparams.php_´文件,首先执行查找OID中信息所需的任何操作,并在获得该信息后(例如在名为$OID的变量中),设置参数:
$oid = functionToConnectToOIDandRetrieveInfo(OidConnection); //pseudo code
$container->setParameter('database_host', $oid->host);
$container->setParameter('database_port', $oid->port);
$container->setParameter('database_name', $oid->name);
$container->setParameter('database_user', $oid->username);
$container->setParameter('database_password', $oid->password);
重要
(更新):
重要的是要理解,当使用此方法更改IP时,您可能需要重新启动symfony应用程序,或者在运行symfony容器时找到另一种方法来反映更改的IP。
如果您的动态IP没有任何回退,并且配置的OID连接没有超时,那么symfony应用程序可能需要永远有效地启动,或者根本无法启动,因为无法建立数据库连接(例如,当OID不可用时)。