Skip to content

Commit ac529c7

Browse files
committed
Move the property_info.serializer_extractor definition to serializer.xml
1 parent b50ea89 commit ac529c7

File tree

4 files changed

+19
-47
lines changed

4 files changed

+19
-47
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/PropertyInfoPass.php

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,6 @@ public function process(ContainerBuilder $container)
3131
return;
3232
}
3333

34-
if ($container->hasDefinition('serializer.mapping.class_metadata_factory')) {
35-
$definition = $container->register('property_info.serializer_extractor', 'Symfony\Component\PropertyInfo\Extractor\SerializerExtractor');
36-
$definition->addArgument(new Reference('serializer.mapping.class_metadata_factory'));
37-
$definition->setPublic(false);
38-
$definition->addTag('property_info.list_extractor', array('priority' => -999));
39-
}
40-
4134
$definition = $container->getDefinition('property_info');
4235

4336
$listExtractors = $this->findAndSortTaggedServices('property_info.list_extractor', $container);

src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,12 @@
5555

5656
<!-- Name converter -->
5757
<service id="serializer.name_converter.camel_case_to_snake_case" class="Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter" public="false" />
58+
59+
<!-- PropertyInfo extractor -->
60+
<service id="property_info.serializer_extractor" class="Symfony\Component\PropertyInfo\Extractor\SerializerExtractor" public="false">
61+
<argument type="service" id="serializer.mapping.class_metadata_factory" />
62+
63+
<tag name="property_info.list_extractor" priority="-999" />
64+
</service>
5865
</services>
5966
</container>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Compiler/PropertyInfoPassTest.php

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -73,44 +73,4 @@ public function testReturningEmptyArrayWhenNoService()
7373

7474
$this->assertEquals(array(), $actual);
7575
}
76-
77-
public function testRegisterSerializerExtractor()
78-
{
79-
$container = $this->getMock(
80-
'Symfony\Component\DependencyInjection\ContainerBuilder',
81-
array('register', 'hasDefinition', 'getDefinition')
82-
);
83-
84-
$container
85-
->expects($this->exactly(2))
86-
->method('hasDefinition')
87-
->will($this->returnValue(true))
88-
;
89-
90-
$serializerExtractorDefinition = new Definition('Symfony\Component\PropertyInfo\Extractor\SerializerExtractor');
91-
$container
92-
->expects($this->exactly(1))
93-
->method('register')
94-
->will($this->returnValue($serializerExtractorDefinition))
95-
;
96-
97-
$propertyInfoDefinition = new Definition(
98-
'Symfony\Component\PropertyInfo\PropertyInfoExtractor',
99-
array(null, null, null, null)
100-
);
101-
$container
102-
->expects($this->exactly(1))
103-
->method('getDefinition')
104-
->will($this->returnValue($propertyInfoDefinition))
105-
;
106-
107-
$propertyInfoPass = new PropertyInfoPass();
108-
$propertyInfoPass->process($container);
109-
110-
$this->assertEquals('serializer.mapping.class_metadata_factory', $serializerExtractorDefinition->getArgument(0)->__toString());
111-
$this->assertFalse($serializerExtractorDefinition->isPublic());
112-
113-
$tag = $serializerExtractorDefinition->getTag('property_info.list_extractor');
114-
$this->assertEquals(array('priority' => -999), $tag[0]);
115-
}
11676
}

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,18 @@ public function testSerializerEnabled()
441441
$this->assertEquals(new Reference('serializer.name_converter.camel_case_to_snake_case'), $container->getDefinition('serializer.normalizer.object')->getArgument(1));
442442
}
443443

444+
public function testRegisterSerializerExtractor()
445+
{
446+
$container = $this->createContainerFromFile('full');
447+
448+
$serializerExtractorDefinition = $container->getDefinition('property_info.serializer_extractor');
449+
450+
$this->assertEquals('serializer.mapping.class_metadata_factory', $serializerExtractorDefinition->getArgument(0)->__toString());
451+
$this->assertFalse($serializerExtractorDefinition->isPublic());
452+
$tag = $serializerExtractorDefinition->getTag('property_info.list_extractor');
453+
$this->assertEquals(array('priority' => -999), $tag[0]);
454+
}
455+
444456
public function testAssetHelperWhenAssetsAreEnabled()
445457
{
446458
$container = $this->createContainerFromFile('full');

0 commit comments

Comments
 (0)