From 7323657ce661b0c71e36438a9e9a0488e4ae38dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Tamarelle?= Date: Fri, 20 Jun 2025 09:39:34 +0200 Subject: [PATCH] Remove deprecated ContainerBuilder::getAutoconfiguredAttributes() --- UPGRADE-8.0.md | 2 ++ .../DependencyInjection/CHANGELOG.md | 1 + .../DependencyInjection/ContainerBuilder.php | 21 ------------------- .../Tests/ContainerBuilderTest.php | 19 ----------------- 4 files changed, 3 insertions(+), 40 deletions(-) diff --git a/UPGRADE-8.0.md b/UPGRADE-8.0.md index 18707ddb21f16..d8e067008edcf 100644 --- a/UPGRADE-8.0.md +++ b/UPGRADE-8.0.md @@ -109,6 +109,8 @@ DependencyInjection } ``` + * Remove the `ContainerBuilder::getAutoconfiguredAttributes()` method, use `getAttributeAutoconfigurators()` instead to retrieve all the callbacks for a specific attribute class + DoctrineBridge -------------- diff --git a/src/Symfony/Component/DependencyInjection/CHANGELOG.md b/src/Symfony/Component/DependencyInjection/CHANGELOG.md index 0d87d8d9a8535..650d2f11d602f 100644 --- a/src/Symfony/Component/DependencyInjection/CHANGELOG.md +++ b/src/Symfony/Component/DependencyInjection/CHANGELOG.md @@ -5,6 +5,7 @@ CHANGELOG --- * Remove `#[TaggedIterator]` and `#[TaggedLocator]` attributes, replaced by `#[AutowireLocator]` and `#[AutowireIterator]` + * Remove `ContainerBuilder::getAutoconfiguredAttributes()`, replaced by `ContainerBuilder::getAttributeAutoconfigurators()` 7.4 --- diff --git a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php index 0389003d20856..c469400fe3e39 100644 --- a/src/Symfony/Component/DependencyInjection/ContainerBuilder.php +++ b/src/Symfony/Component/DependencyInjection/ContainerBuilder.php @@ -1488,27 +1488,6 @@ public function getAutoconfiguredInstanceof(): array return $this->autoconfiguredInstanceof; } - /** - * @return array - * - * @deprecated Use {@see getAttributeAutoconfigurators()} instead - */ - public function getAutoconfiguredAttributes(): array - { - trigger_deprecation('symfony/dependency-injection', '7.3', 'The "%s()" method is deprecated, use "getAttributeAutoconfigurators()" instead.', __METHOD__); - - $autoconfiguredAttributes = []; - foreach ($this->autoconfiguredAttributes as $attribute => $configurators) { - if (count($configurators) > 1) { - throw new LogicException(\sprintf('The "%s" attribute has %d configurators. Use "getAttributeAutoconfigurators()" to get all of them.', $attribute, count($configurators))); - } - - $autoconfiguredAttributes[$attribute] = $configurators[0]; - } - - return $autoconfiguredAttributes; - } - /** * @return array */ diff --git a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php index 8360cc3679772..d0ecdd09675bf 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/ContainerBuilderTest.php @@ -842,25 +842,6 @@ public function testMergeAttributeAutoconfiguration() $this->assertSame([AsTaggedItem::class => [$c1, $c2]], $container->getAttributeAutoconfigurators()); } - /** - * @group legacy - */ - public function testGetAutoconfiguredAttributes() - { - $container = new ContainerBuilder(); - $container->registerAttributeForAutoconfiguration(AsTaggedItem::class, $c = static function () {}); - - $this->expectUserDeprecationMessage('Since symfony/dependency-injection 7.3: The "Symfony\Component\DependencyInjection\ContainerBuilder::getAutoconfiguredAttributes()" method is deprecated, use "getAttributeAutoconfigurators()" instead.'); - $configurators = $container->getAutoconfiguredAttributes(); - $this->assertSame($c, $configurators[AsTaggedItem::class]); - - // Method call fails with more than one configurator for a given attribute - $container->registerAttributeForAutoconfiguration(AsTaggedItem::class, $c = static function () {}); - - $this->expectException(LogicException::class); - $container->getAutoconfiguredAttributes(); - } - public function testResolveEnvValues() { $_ENV['DUMMY_ENV_VAR'] = 'du%%y';