Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- services:
- mapping.listener:
- class: AcmeYourBundleEventListenerMappingListener
- tags:
- - { name: doctrine.event_listener, event: loadClassMetadata }
- use DoctrineORMEventLoadClassMetadataEventArgs;
- class MappingListener
- {
- public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs)
- {
- $classMetadata = $eventArgs->getClassMetadata();
- $table = $classMetadata->table;
- $oldName = $table['name']; // ... or $classMetaData->getTableName()
- // your logic here ...
- $table['name'] = 'new_table_name';
- $classMetadata->setPrimaryTable($table);
- // ... or add a field-mapping like this
- $fieldMapping = array(
- 'fieldName' => 'about',
- 'type' => 'string',
- 'length' => 255
- );
- $classMetadata->mapField($fieldMapping);
- $mappingListener = new MappingListener();
- // ... maybe even modify the listener using reflection
- $evm = $this->get('doctrine')->getManager()->->getEventManager();
- $evm->addEventListener('loadClassMetadata', $mappingListener);
- doctrine:
- dbal:
- default_connection: default
- connections:
- default:
- driver: "%database_driver%"
- host: "%database_host%"
- port: "%database_port%"
- dbname: "%database_name%"
- user: "%database_user%"
- password: "%database_password%"
- charset: UTF8
- customer:
- driver: "%database_driver2%"
- host: "%database_host2%"
- port: "%database_port2%"
- dbname: "%database_name2%"
- user: "%database_user2%"
- password: "%database_password2%"
- charset: UTF8
- $em = $this->get('doctrine')->getManager('default');
- $em2 = $this->get('doctrine')->getManager('customer');
- $customers = $this->get('doctrine')
- ->getRepository('AcmeCustomerBundle:Customer', 'customer')
- ->findAll()
- ;
- $this->get('doctrine')
- ->connection('mysql://username:password@localhost/test', 'dynamic_connection');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement