@@ -64,9 +64,10 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
64
64
$ keys = array_keys ($ config ['connections ' ]);
65
65
$ config ['default_connection ' ] = reset ($ keys );
66
66
}
67
+ $ this ->defaultConnection = $ config ['default_connection ' ];
67
68
68
- $ container ->setAlias ('database_connection ' , sprintf ('doctrine.dbal.%s_connection ' , $ config [ ' default_connection ' ] ));
69
- $ container ->setAlias ('doctrine.dbal.event_manager ' , new Alias (sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ config [ ' default_connection ' ] ), false ));
69
+ $ container ->setAlias ('database_connection ' , sprintf ('doctrine.dbal.%s_connection ' , $ this -> defaultConnection ));
70
+ $ container ->setAlias ('doctrine.dbal.event_manager ' , new Alias (sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ this -> defaultConnection ), false ));
70
71
71
72
$ container ->getDefinition ('doctrine.dbal.connection_factory ' )->replaceArgument (0 , $ config ['types ' ]);
72
73
@@ -75,7 +76,7 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
75
76
$ connections [$ name ] = sprintf ('doctrine.dbal.%s_connection ' , $ name );
76
77
}
77
78
$ container ->getDefinition ('doctrine ' )->replaceArgument (1 , $ connections );
78
- $ container ->getDefinition ('doctrine ' )->replaceArgument (3 , $ config [ ' default_connection ' ] );
79
+ $ container ->getDefinition ('doctrine ' )->replaceArgument (3 , $ this -> defaultConnection );
79
80
80
81
foreach ($ config ['connections ' ] as $ name => $ connection ) {
81
82
$ this ->loadDbalConnection ($ name , $ connection , $ container );
@@ -220,23 +221,21 @@ protected function loadOrmEntityManager(array $entityManager, ContainerBuilder $
220
221
}
221
222
}
222
223
223
- $ entityManagerService = sprintf ('doctrine.orm.%s_entity_manager ' , $ entityManager ['name ' ]);
224
- $ connectionId = isset ($ entityManager ['connection ' ]) ? sprintf ('doctrine.dbal.%s_connection ' , $ entityManager ['connection ' ]) : 'database_connection ' ;
225
- $ eventManagerID = isset ($ entityManager ['connection ' ]) ? sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ entityManager ['connection ' ]) : 'doctrine.dbal.event_manager ' ;
226
-
227
- $ ormEmArgs = array (
228
- new Reference ($ connectionId ),
229
- new Reference (sprintf ('doctrine.orm.%s_configuration ' , $ entityManager ['name ' ]))
230
- );
224
+ if (!isset ($ entityManager ['connection ' ])) {
225
+ $ entityManager ['connection ' ] = $ this ->defaultConnection ;
226
+ }
231
227
232
- $ ormEmDef = new Definition ('%doctrine.orm.entity_manager.class% ' , $ ormEmArgs );
233
- $ ormEmDef ->setFactoryClass ('%doctrine.orm.entity_manager.class% ' );
234
- $ ormEmDef ->setFactoryMethod ('create ' );
235
- $ container ->setDefinition ($ entityManagerService , $ ormEmDef );
228
+ $ container
229
+ ->setDefinition (sprintf ('doctrine.orm.%s_entity_manager ' , $ entityManager ['name ' ]), new DefinitionDecorator ('doctrine.orm.entity_manager.abstract ' ))
230
+ ->setArguments (array (
231
+ new Reference (sprintf ('doctrine.dbal.%s_connection ' , $ entityManager ['connection ' ])),
232
+ new Reference (sprintf ('doctrine.orm.%s_configuration ' , $ entityManager ['name ' ]))
233
+ ))
234
+ ;
236
235
237
236
$ container ->setAlias (
238
237
sprintf ('doctrine.orm.%s_entity_manager.event_manager ' , $ entityManager ['name ' ]),
239
- new Alias ($ eventManagerID , false )
238
+ new Alias (sprintf ( ' doctrine.dbal.%s_connection.event_manager ' , $ entityManager [ ' connection ' ]) , false )
240
239
);
241
240
}
242
241
0 commit comments