Можно ли подключиться к базе данных Oracle с помощью доктрины, используя Oracle Internet Directory (OID) для получения IP-адреса базы данных?
Я не могу найти какую-либо документацию.
Благодарю.
Прежде всего, с Doctrine вы должны использовать 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 или найти другой способ отразить измененный IP-адрес в работающем контейнере Symfony.
Если у вас нет запасного варианта для вашего динамического IP-адреса и не настроен тайм-аут для соединения OID, ваше приложение Symfony будет запускаться с пользой вечно или не запускается вообще, так как соединение с базой данных не может быть установлено (например, когда OID недоступен).
Других решений пока нет …