Skip to content

Commit 71e9019

Browse files
committed
Merge branch '5.4' into 6.0
* 5.4: [FrameworkBundle][HttpKernel] Add the ability to enable the profiler using a parameter [FrameworkBundle] Trigger deprecations on stderr instead of using trigger_deprecation call Add PhpStanExtractor [Messenger] allow processing messages in batches [Console] Fix backslash escaping in bash completion Add missing validators translation add suggestions for debug:firewall, debug:form, debug:messenger, debug:router [SecurityBundle] Deprecate not configuring explicitly a provider for custom_authenticators when there is more than one registered provider [Inflector] Fix inflector for "zombies" [Config] Add some cache on SelfCheckingResourceChecker fix AJAX request unit spacing fix ErrorExcception in CacheWarmerAggregate Prevent FormLoginAuthenticator from responding to requests that should be handled by JsonLoginAuthenticator Fix wait duration for fixed window policy Add exact command used to trigger invocation to the completion debug log [Translation] correctly handle intl domains with TargetOperation Allow using param as connection atribute in `*.event_subscriber` and `*.event_listener` tags
2 parents 1bfe150 + 8e1a782 commit 71e9019

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ private function addTaggedServices(ContainerBuilder $container): array
8383
$managerDefs = [];
8484
foreach ($taggedServices as $taggedSubscriber) {
8585
[$tagName, $id, $tag] = $taggedSubscriber;
86-
$connections = isset($tag['connection']) ? [$tag['connection']] : array_keys($this->connections);
86+
$connections = isset($tag['connection'])
87+
? [$container->getParameterBag()->resolveValue($tag['connection'])]
88+
: array_keys($this->connections);
8789
if ($listenerTag === $tagName && !isset($tag['event'])) {
8890
throw new InvalidArgumentException(sprintf('Doctrine event listener "%s" must specify the "event" attribute.', $id));
8991
}

Tests/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPassTest.php

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ public function testProcessEventListenersWithMultipleConnections()
114114
{
115115
$container = $this->createBuilder(true);
116116

117+
$container->setParameter('connection_param', 'second');
118+
117119
$container
118120
->register('a', 'stdClass')
119121
->addTag('doctrine.event_listener', [
@@ -137,6 +139,14 @@ public function testProcessEventListenersWithMultipleConnections()
137139
])
138140
;
139141

142+
$container
143+
->register('d', 'stdClass')
144+
->addTag('doctrine.event_listener', [
145+
'event' => 'onFlush',
146+
'connection' => '%connection_param%',
147+
])
148+
;
149+
140150
$this->process($container);
141151

142152
$eventManagerDef = $container->getDefinition('doctrine.dbal.default_connection.event_manager');
@@ -167,6 +177,7 @@ public function testProcessEventListenersWithMultipleConnections()
167177
[
168178
[['onFlush'], 'a'],
169179
[['onFlush'], 'c'],
180+
[['onFlush'], 'd'],
170181
],
171182
$secondEventManagerDef->getArgument(1)
172183
);
@@ -178,6 +189,7 @@ public function testProcessEventListenersWithMultipleConnections()
178189
[
179190
'a' => new ServiceClosureArgument(new Reference('a')),
180191
'c' => new ServiceClosureArgument(new Reference('c')),
192+
'd' => new ServiceClosureArgument(new Reference('d')),
181193
],
182194
$serviceLocatorDef->getArgument(0)
183195
);
@@ -187,6 +199,8 @@ public function testProcessEventSubscribersWithMultipleConnections()
187199
{
188200
$container = $this->createBuilder(true);
189201

202+
$container->setParameter('connection_param', 'second');
203+
190204
$container
191205
->register('a', 'stdClass')
192206
->addTag('doctrine.event_subscriber', [
@@ -210,6 +224,14 @@ public function testProcessEventSubscribersWithMultipleConnections()
210224
])
211225
;
212226

227+
$container
228+
->register('d', 'stdClass')
229+
->addTag('doctrine.event_subscriber', [
230+
'event' => 'onFlush',
231+
'connection' => '%connection_param%',
232+
])
233+
;
234+
213235
$this->process($container);
214236

215237
$eventManagerDef = $container->getDefinition('doctrine.dbal.default_connection.event_manager');
@@ -240,6 +262,7 @@ public function testProcessEventSubscribersWithMultipleConnections()
240262
[
241263
'a',
242264
'c',
265+
'd',
243266
],
244267
$eventManagerDef->getArgument(1)
245268
);
@@ -250,6 +273,7 @@ public function testProcessEventSubscribersWithMultipleConnections()
250273
[
251274
'a' => new ServiceClosureArgument(new Reference('a')),
252275
'c' => new ServiceClosureArgument(new Reference('c')),
276+
'd' => new ServiceClosureArgument(new Reference('d')),
253277
],
254278
$serviceLocatorDef->getArgument(0)
255279
);

0 commit comments

Comments
 (0)