Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. appconfigconfig.yml
  2. ...
  3. doctrine:
  4. dbal:
  5. default_connection: default
  6. connections:
  7. default:
  8. driver: pdo_mysql
  9. host: "%database_host%"
  10. port: "%database_port%"
  11. dbname: "%database_name%"
  12. user: "%database_user%"
  13. password: "%database_password%"
  14. charset: UTF8
  15. dinamica:
  16. driver: pdo_mysql
  17. host: "%database_host%"
  18. port: "%database_port%"
  19. dbname: ~
  20. user: "%database_user%"
  21. password: "%database_password%"
  22. charset: UTF8
  23. orm:
  24. default_entity_manager: default
  25. entity_managers:
  26. default:
  27. connection: default
  28. mappings:
  29. AppBundle: ~
  30. auto_mapping: true
  31. dinamica:
  32. connection: dinamica
  33. mappings:
  34. AppBundle: ~
  35.  
  36. /*AppBundleEventListenerApplicationConnector.php*/
  37. <?php
  38.  
  39. /*Asigna la bd a la conexion dinamica.*/
  40.  
  41. namespace AppBundleEventListener;
  42.  
  43. use SymfonyComponentDependencyInjectionContainerAwareInterface;
  44. use SymfonyComponentDependencyInjectionContainerInterface;
  45. use SymfonyComponentHttpKernelExceptionNotFoundHttpException;
  46. use DoctrineDBALConnection;
  47.  
  48. class ApplicationConnector implements ContainerAwareInterface
  49. {
  50.  
  51. /**
  52. * @param SymfonyComponentDependencyInjectionContainerInterface $container
  53. */
  54. public function setContainer(ContainerInterface $container = NULL)
  55. {
  56. $this->container = $container;
  57. }
  58. /**
  59. * @param $sucursal
  60. */
  61. public function getBDDinamica($sucursal)
  62. {
  63. $em = $this->container->get('doctrine')->getManager();
  64. $bancoselect = $em->getRepository('AppBundle:Sucursal')->findOneBy(array('sucursal' => $sucursal));
  65. $dbalServiceName = sprintf('doctrine.dbal.%s_connection', 'dinamica');
  66. //Obtiene la conexcion dinamica
  67. $dynamicCon = $this->container->get($dbalServiceName);
  68. $refCon = new ReflectionObject($dynamicCon);
  69. $refParams = $refCon->getProperty('_params');
  70. $refParams->setAccessible('public');
  71. $params = $refParams->getValue($dynamicCon);
  72. $params['dbname'] = $bancoselect->getDbname();
  73. $params['user'] = $bancoselect->getDbuser();
  74. $params['password'] = $bancoselect->getDbpassword();
  75. $refParams->setValue($dynamicCon,$params);
  76. $refParams->setAccessible('private');
  77.  
  78. return $dynamicCon;
  79. }
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement