mirror of
https://github.com/symfony/form.git
synced 2026-03-24 00:02:23 +01:00
Merge branch '6.4' into 7.4
* 6.4: [Form] Add resource tracking for type extension classes in FormPass
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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 = [])
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user