@@ -115,9 +115,6 @@ protected function loadDbalConnection(array $connection, ContainerBuilder $conta
115
115
$ containerDef ->addMethodCall ('setSqlLogger ' , array (new Reference ('doctrine.dbal.logger ' )));
116
116
$ container ->setDefinition (sprintf ('doctrine.dbal.%s_connection.configuration ' , $ connection ['name ' ]), $ containerDef );
117
117
118
- $ eventManagerDef = new Definition (isset ($ connection ['event-manager-class ' ]) ? $ connection ['event-manager-class ' ] : $ connection ['event_manager_class ' ]);
119
- $ container ->setDefinition (sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ connection ['name ' ]), $ eventManagerDef );
120
-
121
118
$ driverOptions = array ();
122
119
$ driverDef = new Definition ('Doctrine\DBAL\DriverManager ' );
123
120
$ driverDef ->setFactoryMethod ('getConnection ' );
@@ -147,6 +144,32 @@ protected function loadDbalConnection(array $connection, ContainerBuilder $conta
147
144
}
148
145
}
149
146
147
+ // event manager
148
+ $ eventManagerName = isset ($ connection ['event_manager ' ]) ? $ connection ['event_manager ' ] : $ connection ['name ' ];
149
+ $ eventManagerId = sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ eventManagerName );
150
+ if (!$ container ->hasDefinition ($ eventManagerId )) {
151
+ $ eventManagerDef = new Definition ('%doctrine.dbal.event_manager_class% ' );
152
+ $ eventManagerDef ->addMethodCall ('loadTaggedEventListeners ' , array (
153
+ new Reference ('service_container ' ),
154
+ ));
155
+ $ eventManagerDef ->addMethodCall ('loadTaggedEventListeners ' , array (
156
+ new Reference ('service_container ' ),
157
+ sprintf ('doctrine.dbal.%s_event_listener ' , $ eventManagerName ),
158
+ ));
159
+ $ eventManagerDef ->addMethodCall ('loadTaggedEventSubscribers ' , array (
160
+ new Reference ('service_container ' ),
161
+ ));
162
+ $ eventManagerDef ->addMethodCall ('loadTaggedEventSubscribers ' , array (
163
+ new Reference ('service_container ' ),
164
+ sprintf ('doctrine.dbal.%s_event_subscriber ' , $ eventManagerName ),
165
+ ));
166
+ $ container ->setDefinition ($ eventManagerId , $ eventManagerDef );
167
+ }
168
+
169
+ if ($ container ->getParameter ('doctrine.dbal.default_connection ' ) == $ connection ['name ' ]) {
170
+ $ container ->setAlias ('doctrine.dbal.event_manager ' , sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ connection ['name ' ]));
171
+ }
172
+
150
173
$ driverDef ->setArguments (array (
151
174
$ driverOptions ,
152
175
new Reference (sprintf ('doctrine.dbal.%s_connection.configuration ' , $ connection ['name ' ])),
@@ -305,8 +328,10 @@ protected function loadOrmEntityManager(array $entityManager, ContainerBuilder $
305
328
$ entityManagerService = sprintf ('doctrine.orm.%s_entity_manager ' , $ entityManager ['name ' ]);
306
329
307
330
if (!$ container ->hasDefinition ($ entityManagerService ) || isset ($ entityManager ['connection ' ])) {
331
+ $ connectionName = isset ($ entityManager ['connection ' ]) ? $ entityManager ['connection ' ] : $ entityManager ['name ' ];
332
+
308
333
$ ormEmArgs = array (
309
- new Reference (sprintf ('doctrine.dbal.%s_connection ' , isset ( $ entityManager [ ' connection ' ]) ? $ entityManager [ ' connection ' ] : $ entityManager [ ' name ' ] )),
334
+ new Reference (sprintf ('doctrine.dbal.%s_connection ' , $ connectionName )),
310
335
new Reference (sprintf ('doctrine.orm.%s_configuration ' , $ entityManager ['name ' ]))
311
336
);
312
337
$ ormEmDef = new Definition ('%doctrine.orm.entity_manager_class% ' , $ ormEmArgs );
@@ -320,6 +345,10 @@ protected function loadOrmEntityManager(array $entityManager, ContainerBuilder $
320
345
sprintf ('doctrine.orm.%s_entity_manager ' , $ entityManager ['name ' ])
321
346
);
322
347
}
348
+ $ container ->setAlias (
349
+ sprintf ('doctrine.orm.%s_entity_manager.event_manager ' , $ entityManager ['name ' ]),
350
+ sprintf ('doctrine.dbal.%s_connection.event_manager ' , $ connectionName )
351
+ );
323
352
}
324
353
}
325
354
0 commit comments