Al parecer mucha suerte es la que necesito xD.
Te comento mas o menos lo que quiero implementar ojala puedas echarme una mano:
La plataforma se compone de modulos genericos que pueden ser personalizados para cada cliente con una base de datos independiente para cada uno y una base de datos para el core de la plataforma.
Código:
...
src
Core
Admin
CompaniesBundle
...
Security
AuthBundle
...
System
ConfigsBundle
LayoutsBundle
LogsBundle
ReportsBundle
...
Modules
SalesBundle
AccountingBundle
FinancesBundle
LogisticsBundle
UsersBundle
...
Companies
Client1
SalesBundle
UsersBundle
Client2
AccountingBundle
FinancesBundle
UsersBundle
...
La idea del proyecto;
Existe el bundle usuarios que se ha extendido para todos los clientes, ya sea extendiendo un controller o el bundle directamente. El bundle, tiene una interfaz (gui) en donde se listan los usuarios del cliente. Como cada cliente tiene una base de datos diferente, se deben mostrar solo los usuarios que le corresponden a ese cliente especifico ya que el action listar del controller default no ha sido sobre escrito ni se le ha aplicado alguna personalización para el cliente.
Entonces, Tenemos un controller llamado DefaultController y una acción llamada listarAction; Está acción tiene un código similar al siguiente:
Código:
$em = $this->getDoctrine()->getEntityManager();
$users = $em->getRepository('ModulesUsersBundle:Users')->findAll();
return $this->render(
'ModulesUsersBundle:Default:home.html.twig',
array('users' => $users)
);
Este código será ejecutado por todos los bundles o controllers que extienden del ModuleUsersBundle. Es posible, usando symfony, establecer la base de datos correspondiente al cliente antes de hacer la query? es posible crear un servicio, leer la sesión del usuario, obtener los datos de conexión y establecer el entity manager o la conexión correspondiente a la config del cliente??
SAludos y gracias
Saludos y gracias por su ayuda.