Skip to content

Commit

Permalink
[DoctrineBridge] feat: deprecate passing doctrine subscribers to Cont…
Browse files Browse the repository at this point in the history
…ainerAwareEventManager
  • Loading branch information
alli83 committed Apr 4, 2023
1 parent 847416f commit 0937e41
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions UPGRADE-6.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ DependencyInjection
DoctrineBridge
--------------

* Deprecate passing doctrine subscribers to `ContainerAwareEventManager` class, use of doctrine listener is a preferred alternative way
* Deprecate `DoctrineDbalCacheAdapterSchemaSubscriber` in favor of `DoctrineDbalCacheAdapterSchemaListener`
* Deprecate `MessengerTransportDoctrineSchemaSubscriber` in favor of `MessengerTransportDoctrineSchemaListener`
* Deprecate `RememberMeTokenProviderDoctrineSchemaSubscriber` in favor of `RememberMeTokenProviderDoctrineSchemaListener`
Expand Down
1 change: 1 addition & 0 deletions src/Symfony/Bridge/Doctrine/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ CHANGELOG
6.3
---

* Deprecate passing doctrine subscribers to `ContainerAwareEventManager` class, use of doctrine listener is a preferred alternative way
* Add `AbstractSchemaListener`, `LockStoreSchemaListener` and `PdoSessionHandlerSchemaListener`
* Deprecate `DoctrineDbalCacheAdapterSchemaSubscriber` in favor of `DoctrineDbalCacheAdapterSchemaListener`
* Deprecate `MessengerTransportDoctrineSchemaSubscriber` in favor of `MessengerTransportDoctrineSchemaListener`
Expand Down
3 changes: 3 additions & 0 deletions src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,9 @@ private function initializeSubscribers(): void
if (\is_string($subscriber)) {
$subscriber = $this->container->get($subscriber);
}

trigger_deprecation('symfony/doctrine-bridge', '6.3', 'Passing subscribers is deprecated, use listeners instead');

parent::addEventSubscriber($subscriber);
}
$this->subscribers = [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ private function addTaggedServices(ContainerBuilder $container): array
$refs = $managerDef->getArguments()[1] ?? [];
$listenerRefs[$con][$id] = new Reference($id);
if ($subscriberTag === $tagName) {
trigger_deprecation('symfony/doctrine-bridge', '6.3', 'Passing subscribers is deprecated, use listeners instead');

$refs[] = $id;
} else {
$refs[] = [[$tag['event']], $id];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ protected function setUp(): void
$this->evm = new ContainerAwareEventManager($this->container);
}

/**
* @group legacy
*/
public function testDispatchEventRespectOrder()
{
$this->evm = new ContainerAwareEventManager($this->container, ['sub1', [['foo'], 'list1'], 'sub2']);
Expand All @@ -38,9 +41,14 @@ public function testDispatchEventRespectOrder()
$this->container->set('sub1', $subscriber1 = new MySubscriber(['foo']));
$this->container->set('sub2', $subscriber2 = new MySubscriber(['foo']));

$this->expectDeprecation('Since symfony/doctrine-bridge 6.3: Passing subscribers is deprecated, use listeners instead');

$this->assertSame([$subscriber1, $listener1, $subscriber2], array_values($this->evm->getListeners('foo')));
}

/**
* @group legacy
*/
public function testDispatchEvent()
{
$this->evm = new ContainerAwareEventManager($this->container, ['lazy4']);
Expand All @@ -57,6 +65,7 @@ public function testDispatchEvent()
$this->container->set('lazy3', $listener5 = new MyListener());
$this->evm->addEventListener('foo', $listener5 = new MyListener());
$this->evm->addEventListener('bar', $listener5);

$this->evm->addEventSubscriber($subscriber2 = new MySubscriber(['bar']));

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

/**
* @group legacy
*/
public function testAddEventListenerAndSubscriberAfterDispatchEvent()
{
$this->evm = new ContainerAwareEventManager($this->container, ['lazy7']);
Expand All @@ -101,6 +113,7 @@ public function testAddEventListenerAndSubscriberAfterDispatchEvent()
$this->container->set('lazy3', $listener5 = new MyListener());
$this->evm->addEventListener('foo', $listener5 = new MyListener());
$this->evm->addEventListener('bar', $listener5);

$this->evm->addEventSubscriber($subscriber2 = new MySubscriber(['bar']));

$this->assertSame(1, $subscriber2->calledSubscribedEventsCount);
Expand All @@ -120,6 +133,7 @@ public function testAddEventListenerAndSubscriberAfterDispatchEvent()
$this->container->set('lazy6', $listener10 = new MyListener());
$this->evm->addEventListener('foo', $listener10 = new MyListener());
$this->evm->addEventListener('bar', $listener10);

$this->evm->addEventSubscriber($subscriber3 = new MySubscriber(['bar']));

$this->assertSame(1, $subscriber1->calledSubscribedEventsCount);
Expand Down Expand Up @@ -162,12 +176,17 @@ public function testAddEventListenerAndSubscriberAfterDispatchEvent()
$this->assertSame(0, $subscriber3->calledByEventNameCount);
}

/**
* @group legacy
*/
public function testGetListenersForEvent()
{
$this->evm = new ContainerAwareEventManager($this->container, ['lazy2']);

$this->container->set('lazy', $listener1 = new MyListener());
$this->container->set('lazy2', $subscriber1 = new MySubscriber(['foo']));

$this->expectDeprecation('Since symfony/doctrine-bridge 6.3: Passing subscribers is deprecated, use listeners instead');
$this->evm->addEventListener('foo', 'lazy');
$this->evm->addEventListener('foo', $listener2 = new MyListener());

Expand All @@ -191,6 +210,7 @@ public function testGetListeners()
public function testGetAllListeners()
{
$this->container->set('lazy', $listener1 = new MyListener());

$this->evm->addEventListener('foo', 'lazy');
$this->evm->addEventListener('foo', $listener2 = new MyListener());

Expand All @@ -200,6 +220,7 @@ public function testGetAllListeners()
public function testRemoveEventListener()
{
$this->container->set('lazy', $listener1 = new MyListener());

$this->evm->addEventListener('foo', 'lazy');
$this->evm->addEventListener('foo', $listener2 = new MyListener());

Expand All @@ -213,6 +234,7 @@ public function testRemoveEventListener()
public function testRemoveEventListenerAfterDispatchEvent()
{
$this->container->set('lazy', $listener1 = new MyListener());

$this->evm->addEventListener('foo', 'lazy');
$this->evm->addEventListener('foo', $listener2 = new MyListener());

Expand Down

0 comments on commit 0937e41

Please sign in to comment.