Skip to content

Commit 0937e41

Browse files
committed
[DoctrineBridge] feat: deprecate passing doctrine subscribers to ContainerAwareEventManager
1 parent 847416f commit 0937e41

File tree

5 files changed

+29
-0
lines changed

5 files changed

+29
-0
lines changed

UPGRADE-6.3.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ DependencyInjection
1717
DoctrineBridge
1818
--------------
1919

20+
* Deprecate passing doctrine subscribers to `ContainerAwareEventManager` class, use of doctrine listener is a preferred alternative way
2021
* Deprecate `DoctrineDbalCacheAdapterSchemaSubscriber` in favor of `DoctrineDbalCacheAdapterSchemaListener`
2122
* Deprecate `MessengerTransportDoctrineSchemaSubscriber` in favor of `MessengerTransportDoctrineSchemaListener`
2223
* Deprecate `RememberMeTokenProviderDoctrineSchemaSubscriber` in favor of `RememberMeTokenProviderDoctrineSchemaListener`

src/Symfony/Bridge/Doctrine/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ CHANGELOG
44
6.3
55
---
66

7+
* Deprecate passing doctrine subscribers to `ContainerAwareEventManager` class, use of doctrine listener is a preferred alternative way
78
* Add `AbstractSchemaListener`, `LockStoreSchemaListener` and `PdoSessionHandlerSchemaListener`
89
* Deprecate `DoctrineDbalCacheAdapterSchemaSubscriber` in favor of `DoctrineDbalCacheAdapterSchemaListener`
910
* Deprecate `MessengerTransportDoctrineSchemaSubscriber` in favor of `MessengerTransportDoctrineSchemaListener`

src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,9 @@ private function initializeSubscribers(): void
190190
if (\is_string($subscriber)) {
191191
$subscriber = $this->container->get($subscriber);
192192
}
193+
194+
trigger_deprecation('symfony/doctrine-bridge', '6.3', 'Passing subscribers is deprecated, use listeners instead');
195+
193196
parent::addEventSubscriber($subscriber);
194197
}
195198
$this->subscribers = [];

src/Symfony/Bridge/Doctrine/DependencyInjection/CompilerPass/RegisterEventListenersAndSubscribersPass.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,8 @@ private function addTaggedServices(ContainerBuilder $container): array
106106
$refs = $managerDef->getArguments()[1] ?? [];
107107
$listenerRefs[$con][$id] = new Reference($id);
108108
if ($subscriberTag === $tagName) {
109+
trigger_deprecation('symfony/doctrine-bridge', '6.3', 'Passing subscribers is deprecated, use listeners instead');
110+
109111
$refs[] = $id;
110112
} else {
111113
$refs[] = [[$tag['event']], $id];

src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ protected function setUp(): void
3030
$this->evm = new ContainerAwareEventManager($this->container);
3131
}
3232

33+
/**
34+
* @group legacy
35+
*/
3336
public function testDispatchEventRespectOrder()
3437
{
3538
$this->evm = new ContainerAwareEventManager($this->container, ['sub1', [['foo'], 'list1'], 'sub2']);
@@ -38,9 +41,14 @@ public function testDispatchEventRespectOrder()
3841
$this->container->set('sub1', $subscriber1 = new MySubscriber(['foo']));
3942
$this->container->set('sub2', $subscriber2 = new MySubscriber(['foo']));
4043

44+
$this->expectDeprecation('Since symfony/doctrine-bridge 6.3: Passing subscribers is deprecated, use listeners instead');
45+
4146
$this->assertSame([$subscriber1, $listener1, $subscriber2], array_values($this->evm->getListeners('foo')));
4247
}
4348

49+
/**
50+
* @group legacy
51+
*/
4452
public function testDispatchEvent()
4553
{
4654
$this->evm = new ContainerAwareEventManager($this->container, ['lazy4']);
@@ -57,6 +65,7 @@ public function testDispatchEvent()
5765
$this->container->set('lazy3', $listener5 = new MyListener());
5866
$this->evm->addEventListener('foo', $listener5 = new MyListener());
5967
$this->evm->addEventListener('bar', $listener5);
68+
6069
$this->evm->addEventSubscriber($subscriber2 = new MySubscriber(['bar']));
6170

6271
$this->assertSame(1, $subscriber2->calledSubscribedEventsCount);
@@ -83,6 +92,9 @@ public function testDispatchEvent()
8392
$this->assertSame(0, $subscriber2->calledByEventNameCount);
8493
}
8594

95+
/**
96+
* @group legacy
97+
*/
8698
public function testAddEventListenerAndSubscriberAfterDispatchEvent()
8799
{
88100
$this->evm = new ContainerAwareEventManager($this->container, ['lazy7']);
@@ -101,6 +113,7 @@ public function testAddEventListenerAndSubscriberAfterDispatchEvent()
101113
$this->container->set('lazy3', $listener5 = new MyListener());
102114
$this->evm->addEventListener('foo', $listener5 = new MyListener());
103115
$this->evm->addEventListener('bar', $listener5);
116+
104117
$this->evm->addEventSubscriber($subscriber2 = new MySubscriber(['bar']));
105118

106119
$this->assertSame(1, $subscriber2->calledSubscribedEventsCount);
@@ -120,6 +133,7 @@ public function testAddEventListenerAndSubscriberAfterDispatchEvent()
120133
$this->container->set('lazy6', $listener10 = new MyListener());
121134
$this->evm->addEventListener('foo', $listener10 = new MyListener());
122135
$this->evm->addEventListener('bar', $listener10);
136+
123137
$this->evm->addEventSubscriber($subscriber3 = new MySubscriber(['bar']));
124138

125139
$this->assertSame(1, $subscriber1->calledSubscribedEventsCount);
@@ -162,12 +176,17 @@ public function testAddEventListenerAndSubscriberAfterDispatchEvent()
162176
$this->assertSame(0, $subscriber3->calledByEventNameCount);
163177
}
164178

179+
/**
180+
* @group legacy
181+
*/
165182
public function testGetListenersForEvent()
166183
{
167184
$this->evm = new ContainerAwareEventManager($this->container, ['lazy2']);
168185

169186
$this->container->set('lazy', $listener1 = new MyListener());
170187
$this->container->set('lazy2', $subscriber1 = new MySubscriber(['foo']));
188+
189+
$this->expectDeprecation('Since symfony/doctrine-bridge 6.3: Passing subscribers is deprecated, use listeners instead');
171190
$this->evm->addEventListener('foo', 'lazy');
172191
$this->evm->addEventListener('foo', $listener2 = new MyListener());
173192

@@ -191,6 +210,7 @@ public function testGetListeners()
191210
public function testGetAllListeners()
192211
{
193212
$this->container->set('lazy', $listener1 = new MyListener());
213+
194214
$this->evm->addEventListener('foo', 'lazy');
195215
$this->evm->addEventListener('foo', $listener2 = new MyListener());
196216

@@ -200,6 +220,7 @@ public function testGetAllListeners()
200220
public function testRemoveEventListener()
201221
{
202222
$this->container->set('lazy', $listener1 = new MyListener());
223+
203224
$this->evm->addEventListener('foo', 'lazy');
204225
$this->evm->addEventListener('foo', $listener2 = new MyListener());
205226

@@ -213,6 +234,7 @@ public function testRemoveEventListener()
213234
public function testRemoveEventListenerAfterDispatchEvent()
214235
{
215236
$this->container->set('lazy', $listener1 = new MyListener());
237+
216238
$this->evm->addEventListener('foo', 'lazy');
217239
$this->evm->addEventListener('foo', $listener2 = new MyListener());
218240

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy