Guest User

Untitled

a guest
Jun 24th, 2018
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. doctrine:
  2. dbal:
  3. default_connection: default
  4. connections:
  5. default:
  6. driver: pdo_mysql
  7. host: "%env(DATABASE_HOST)%"
  8. dbname: "db1"
  9. user: "%env(DATABASE_USER)%"
  10. password: "%env(DATABASE_PASS)%"
  11. charset: UTF8
  12. ds:
  13. driver: pdo_mysql
  14. host: "%env(DS_DATABASE_HOST)%"
  15. dbname: "db2"
  16. user: "%env(DS_DATABASE_USER)%"
  17. password: "%env(DS_DATABASE_PASS)%"
  18. slaves:
  19. slave1:
  20. host: "%env(DS_DATABASE_SLAVE1_HOST)%"
  21. user: "%env(DS_DATABASE_USER)%"
  22. password: "%env(DS_DATABASE_PASS)%"
  23. dbname: "db2"
  24. slave2:
  25. host: "%env(DS_DATABASE_SLAVE2_HOST)%"
  26. user: "%env(DS_DATABASE_USER)%"
  27. password: "%env(DS_DATABASE_PASS)%"
  28. dbname: "db2"
  29.  
  30. orm:
  31. default_entity_manager: default
  32. entity_managers:
  33. default:
  34. connection: default
  35. mappings:
  36. Main:
  37. is_bundle: false
  38. type: annotation
  39. dir: '%kernel.project_dir%/src/Entity/Main'
  40. prefix: 'AppEntityMain'
  41. alias: Main
  42. ds:
  43. connection: ds
  44.  
  45. # Entity managers
  46. AppServiceDatabaseMainEntityManager:
  47. arguments:
  48. $wrapped: '@doctrine.orm.default_entity_manager'
  49. AppServiceDatabaseDSEntityManager:
  50. arguments:
  51. $wrapped: '@doctrine.orm.ds_entity_manager'
  52.  
  53. $result = $this->em->getConnection()->prepare($sql);
  54. $result->execute($args);
  55.  
  56. ds:
  57. driver: pdo_mysql
  58. host: "%env(DS_DATABASE_HOST)%"
  59. dbname: "db2"
  60. user: "%env(DS_DATABASE_USER)%"
  61. password: "%env(DS_DATABASE_PASS)%"
  62. wrapper_class: "%env(DS_DATABASE_PASS)%"
  63. slaves: AppServiceDatabaseDSWrapper
  64. slave1: ...
  65.  
  66. # DBAL connections
  67. AppServiceDatabaseDSWrapper: '@doctrine.dbal.ds_connection'
  68.  
  69. class DSWrapper extends MasterSlaveConnection
  70. {
  71. public function prepareSlave($statement)
  72. {
  73. $this->connect('slave');
  74.  
  75. try {
  76. $stmt = new Statement($statement, $this);
  77. } catch (Exception $ex) {
  78. throw DBALException::driverExceptionDuringQuery($this->_driver, $ex, $statement);
  79. }
  80.  
  81. $stmt->setFetchMode($this->defaultFetchMode);
  82.  
  83. return $stmt;
  84. }
  85.  
  86. public function querySlave()
  87. {
  88. $this->connect('slave');
  89.  
  90. $args = func_get_args();
  91.  
  92. $logger = $this->getConfiguration()->getSQLLogger();
  93. if ($logger) {
  94. $logger->startQuery($args[0]);
  95. }
  96.  
  97. $statement = $this->_conn->query(...$args);
  98.  
  99. if ($logger) {
  100. $logger->stopQuery();
  101. }
  102.  
  103. return $statement;
  104. }
  105. }
Add Comment
Please, Sign In to add comment