Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- appconfigconfig.yml
- ...
- doctrine:
- dbal:
- default_connection: default
- connections:
- default:
- driver: pdo_mysql
- host: "%database_host%"
- port: "%database_port%"
- dbname: "%database_name%"
- user: "%database_user%"
- password: "%database_password%"
- charset: UTF8
- dinamica:
- driver: pdo_mysql
- host: "%database_host%"
- port: "%database_port%"
- dbname: ~
- user: "%database_user%"
- password: "%database_password%"
- charset: UTF8
- orm:
- default_entity_manager: default
- entity_managers:
- default:
- connection: default
- mappings:
- AppBundle: ~
- auto_mapping: true
- dinamica:
- connection: dinamica
- mappings:
- AppBundle: ~
- /*AppBundleEventListenerApplicationConnector.php*/
- <?php
- /*Asigna la bd a la conexion dinamica.*/
- namespace AppBundleEventListener;
- use SymfonyComponentDependencyInjectionContainerAwareInterface;
- use SymfonyComponentDependencyInjectionContainerInterface;
- use SymfonyComponentHttpKernelExceptionNotFoundHttpException;
- use DoctrineDBALConnection;
- class ApplicationConnector implements ContainerAwareInterface
- {
- /**
- * @param SymfonyComponentDependencyInjectionContainerInterface $container
- */
- public function setContainer(ContainerInterface $container = NULL)
- {
- $this->container = $container;
- }
- /**
- * @param $sucursal
- */
- public function getBDDinamica($sucursal)
- {
- $em = $this->container->get('doctrine')->getManager();
- $bancoselect = $em->getRepository('AppBundle:Sucursal')->findOneBy(array('sucursal' => $sucursal));
- $dbalServiceName = sprintf('doctrine.dbal.%s_connection', 'dinamica');
- //Obtiene la conexcion dinamica
- $dynamicCon = $this->container->get($dbalServiceName);
- $refCon = new ReflectionObject($dynamicCon);
- $refParams = $refCon->getProperty('_params');
- $refParams->setAccessible('public');
- $params = $refParams->getValue($dynamicCon);
- $params['dbname'] = $bancoselect->getDbname();
- $params['user'] = $bancoselect->getDbuser();
- $params['password'] = $bancoselect->getDbpassword();
- $refParams->setValue($dynamicCon,$params);
- $refParams->setAccessible('private');
- return $dynamicCon;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement