#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. Спасибо, не могли бы вы вставить полный пример?