Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b8d773a

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

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 in `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 in `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)