Merge branch '6.4' into 7.4

* 6.4:
  [Form] Add resource tracking for type extension classes in FormPass
This commit is contained in:
Nicolas Grekas
2026-02-23 13:14:34 +01:00
2 changed files with 15 additions and 0 deletions

View File

@@ -96,6 +96,7 @@ class FormPass implements CompilerPassInterface
$extendsTypes = false;
$typeExtensionsClasses[] = $typeExtensionClass;
$container->getReflectionClass($typeExtensionClass);
foreach ($typeExtensionClass::getExtendedTypes() as $extendedType) {
$typeExtensions[$extendedType][] = new Reference($serviceId);
$extendsTypes = true;

View File

@@ -279,6 +279,20 @@ class FormPassTest extends TestCase
);
}
public function testTypeExtensionClassIsTrackedAsResource()
{
$container = $this->createContainerBuilder();
$container->setDefinition('form.extension', $this->createExtensionDefinition());
$container->register('my.type_extension', Type1TypeExtension::class)
->addTag('form.type_extension');
$container->compile();
$resources = array_map('strval', $container->getResources());
$this->assertContains('reflection.'.Type1TypeExtension::class, $resources);
}
#[DataProvider('privateTaggedServicesProvider')]
public function testPrivateTaggedServices($id, $class, $tagName, callable $assertion, array $tagAttributes = [])
{