@@ -174,12 +174,6 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
174
174
$ config ['default_connection ' ] = reset ($ keys );
175
175
}
176
176
177
- if (! $ container ->hasParameter ('kernel.runtime_mode ' ) && ! $ container ->hasParameter ('kernel.runtime_mode.worker ' )) {
178
- $ container ->removeDefinition ('doctrine.listeners.doctrine_connection_listener ' );
179
- } else {
180
- $ container ->getDefinition ('doctrine.orm.listeners.doctrine_connection_listener ' )->setArgument (1 , $ config ['check_connection_timing ' ]);
181
- }
182
-
183
177
$ this ->defaultConnection = $ config ['default_connection ' ];
184
178
185
179
$ container ->setAlias ('database_connection ' , sprintf ('doctrine.dbal.%s_connection ' , $ this ->defaultConnection ));
@@ -203,12 +197,7 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
203
197
$ connWithProfiling = [];
204
198
$ connWithBacktrace = [];
205
199
$ timingByConnection = [];
206
- $ skipTiming = false ;
207
-
208
- if (! $ container ->hasParameter ('kernel.runtime_mode ' ) && ! $ container ->hasParameter ('kernel.runtime_mode.worker ' )) {
209
- $ container ->removeDefinition ('doctrine.listeners.doctrine_connection_listener ' );
210
- $ skipTiming = true ;
211
- }
200
+ $ connWithTimingCheck = [];
212
201
213
202
foreach ($ config ['connections ' ] as $ name => $ connection ) {
214
203
if ($ connection ['logging ' ]) {
@@ -223,16 +212,16 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
223
212
}
224
213
}
225
214
226
- if (! $ skipTiming ) {
227
- $ timingByConnection [] = [ ' name ' => $ connections [ $ name], ' timing ' => $ connection [ ' check_connection_timing ' ]] ;
215
+ if ($ connection [ ' check_connection_timing ' ] ) {
216
+ $ connWithTimingCheck [] = $ name ;
228
217
}
229
218
219
+ $ timingByConnection [$ connections [$ name ]] = $ connection ['check_connection_timing ' ];
220
+
230
221
$ this ->loadDbalConnection ($ name , $ connection , $ container );
231
222
}
232
223
233
- if (! $ skipTiming ) {
234
- $ container ->getDefinition ('doctrine.orm.listeners.doctrine_connection_listener ' )->setArgument (1 , $ timingByConnection );
235
- }
224
+ $ container ->getDefinition ('doctrine.listeners.doctrine_connection_listener ' )->setArgument (2 , $ timingByConnection );
236
225
237
226
$ container ->registerForAutoconfiguration (MiddlewareInterface::class)->addTag ('doctrine.middleware ' );
238
227
@@ -250,7 +239,7 @@ protected function dbalLoad(array $config, ContainerBuilder $container)
250
239
}
251
240
});
252
241
253
- $ this ->registerDbalMiddlewares ($ container , $ connWithLogging , $ connWithProfiling , $ connWithBacktrace );
242
+ $ this ->registerDbalMiddlewares ($ container , $ connWithLogging , $ connWithProfiling , $ connWithBacktrace, $ connWithTimingCheck );
254
243
}
255
244
256
245
/**
@@ -1201,7 +1190,8 @@ private function registerDbalMiddlewares(
1201
1190
ContainerBuilder $ container ,
1202
1191
array $ connWithLogging ,
1203
1192
array $ connWithProfiling ,
1204
- array $ connWithBacktrace
1193
+ array $ connWithBacktrace ,
1194
+ array $ connWithTimingCheck
1205
1195
): void {
1206
1196
$ loader = new XmlFileLoader ($ container , new FileLocator (__DIR__ . '/../Resources/config ' ));
1207
1197
$ loader ->load ('middlewares.xml ' );
@@ -1217,5 +1207,11 @@ private function registerDbalMiddlewares(
1217
1207
$ debugMiddlewareAbstractDef
1218
1208
->addTag ('doctrine.middleware ' , ['connection ' => $ connName ]);
1219
1209
}
1210
+
1211
+ $ checkTimingMiddlewareAbstractDef = $ container ->getDefinition ('doctrine.connection.keep.alive_middleware ' );
1212
+ foreach ($ connWithTimingCheck as $ connName ) {
1213
+ $ checkTimingMiddlewareAbstractDef
1214
+ ->addTag ('doctrine.middleware ' , ['connection ' => $ connName , 'priority ' => 10 ]);
1215
+ }
1220
1216
}
1221
1217
}
0 commit comments