Динамически изменять базу данных — Symfony

#symfony #doctrine-orm

#symfony #doctrine-orm

Вопрос:

Я разрабатываю приложение с центром входа в систему для более чем 150 различных баз данных, и я могу только задаться вопросом, что это за база данных, которую я использую, когда делается запись для входа в систему, во всех примерах, которые я видел в Интернете, для динамического изменения базы данных ничего не приближается к моей проблеме, будет то, что кто-то может помочь разработать решение для динамического изменения базы данных, когда я получаю сообщение для входа в систему.

Спасибо за ваше время

Комментарии:

1. Вы смотрели на symfony.com/doc/current/doctrine/multiple_entity_managers.html ?

2. Да, я видел, но для этого пришлось поместить 150 баз данных в конфигурацию

Ответ №1:

Вы можете создавать и использовать EntityManagers динамически:

 $connection = DoctrineDBALDriverManager::getConnection([
  // connection parameters stored in config or other database
]);
$config = DoctrineORMToolsSetup::createConfiguration($env);
// additional configuration e.g. of entities
$em = DoctrineORMEntityManager::create($connection, $config);
  

И ваш EntityManager готов.

Комментарии:

1. Затем я могу использовать это подключение к остальной части проекта?

2. Да, вы можете поместить этот код в службу и использовать / внедрять его везде, где захотите.

3. Обратите внимание, что это не изменит ваш менеджер объектов по умолчанию, но создаст новый.

4. Спасибо, не могли бы вы вставить полный пример?