Advertisement
Guest User

Untitled

a guest
Feb 2nd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. services:
  2. mapping.listener:
  3. class: AcmeYourBundleEventListenerMappingListener
  4. tags:
  5. - { name: doctrine.event_listener, event: loadClassMetadata }
  6.  
  7. use DoctrineORMEventLoadClassMetadataEventArgs;
  8.  
  9. class MappingListener
  10. {
  11. public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
  12. {
  13. $classMetadata = $eventArgs->getClassMetadata();
  14. $table = $classMetadata->table;
  15.  
  16. $oldName = $table['name']; // ... or $classMetaData->getTableName()
  17.  
  18. // your logic here ...
  19.  
  20. $table['name'] = 'new_table_name';
  21.  
  22. $classMetadata->setPrimaryTable($table);
  23.  
  24. // ... or add a field-mapping like this
  25.  
  26. $fieldMapping = array(
  27. 'fieldName' => 'about',
  28. 'type' => 'string',
  29. 'length' => 255
  30. );
  31. $classMetadata->mapField($fieldMapping);
  32.  
  33. $mappingListener = new MappingListener();
  34.  
  35. // ... maybe even modify the listener using reflection
  36.  
  37. $evm = $this->get('doctrine')->getManager()->->getEventManager();
  38. $evm->addEventListener('loadClassMetadata', $mappingListener);
  39.  
  40. doctrine:
  41. dbal:
  42. default_connection: default
  43. connections:
  44. default:
  45. driver: "%database_driver%"
  46. host: "%database_host%"
  47. port: "%database_port%"
  48. dbname: "%database_name%"
  49. user: "%database_user%"
  50. password: "%database_password%"
  51. charset: UTF8
  52. customer:
  53. driver: "%database_driver2%"
  54. host: "%database_host2%"
  55. port: "%database_port2%"
  56. dbname: "%database_name2%"
  57. user: "%database_user2%"
  58. password: "%database_password2%"
  59. charset: UTF8
  60.  
  61. $em = $this->get('doctrine')->getManager('default');
  62. $em2 = $this->get('doctrine')->getManager('customer');
  63.  
  64. $customers = $this->get('doctrine')
  65. ->getRepository('AcmeCustomerBundle:Customer', 'customer')
  66. ->findAll()
  67. ;
  68.  
  69. $this->get('doctrine')
  70. ->connection('mysql://username:password@localhost/test', 'dynamic_connection');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement