diff --git a/composer.json b/composer.json index 797a7b7515a58..eda77e963e5ef 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "composer-runtime-api": ">=2.1", "ext-xml": "*", "friendsofphp/proxy-manager-lts": "^1.0.2", - "doctrine/event-manager": "^1|^2", + "doctrine/event-manager": "^1.2|^2", "doctrine/persistence": "^2|^3", "twig/twig": "^2.13|^3.0.4", "psr/cache": "^2.0|^3.0", diff --git a/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php b/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php index b2b7c6e0025cc..bf337bf751635 100644 --- a/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php +++ b/src/Symfony/Bridge/Doctrine/ContainerAwareEventManager.php @@ -70,6 +70,8 @@ public function dispatchEvent($eventName, EventArgs $eventArgs = null): void public function getListeners($event = null): array { if (null === $event) { + trigger_deprecation('symfony/doctrine-bridge', '6.2', 'Calling "%s()" without an event name is deprecated. Call "getAllListeners()" instead.', __METHOD__); + return $this->getAllListeners(); } if (!$this->initializedSubscribers) { diff --git a/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php b/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php index 9d86eeed54ef1..0ad18f0a66edd 100644 --- a/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php +++ b/src/Symfony/Bridge/Doctrine/Tests/ContainerAwareEventManagerTest.php @@ -14,10 +14,13 @@ use Doctrine\Common\EventSubscriber; use PHPUnit\Framework\TestCase; use Symfony\Bridge\Doctrine\ContainerAwareEventManager; +use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait; use Symfony\Component\DependencyInjection\Container; class ContainerAwareEventManagerTest extends TestCase { + use ExpectDeprecationTrait; + private $container; private $evm; @@ -171,12 +174,17 @@ public function testGetListenersForEvent() $this->assertSame([$subscriber1, $listener1, $listener2], array_values($this->evm->getListeners('foo'))); } + /** + * @group legacy + */ public function testGetListeners() { $this->container->set('lazy', $listener1 = new MyListener()); $this->evm->addEventListener('foo', 'lazy'); $this->evm->addEventListener('foo', $listener2 = new MyListener()); + $this->expectDeprecation('Since symfony/doctrine-bridge 6.2: Calling "Symfony\Bridge\Doctrine\ContainerAwareEventManager::getListeners()" without an event name is deprecated. Call "getAllListeners()" instead.'); + $this->assertSame([$listener1, $listener2], array_values($this->evm->getListeners()['foo'])); } diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index 13cc0943c4c54..54dd86a53dfd3 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -17,7 +17,7 @@ ], "require": { "php": ">=8.1", - "doctrine/event-manager": "^1|^2", + "doctrine/event-manager": "^1.2|^2", "doctrine/persistence": "^2|^3", "symfony/deprecation-contracts": "^2.1|^3", "symfony/polyfill-ctype": "~1.8",