8000 minor #24634 [FrameworkBundle][Serializer] Move normalizer/encoders d… · symfony/symfony@2f1af1b · GitHub
[go: up one dir, main page]

Skip to content

Commit 2f1af1b

Browse files
committed
minor #24634 [FrameworkBundle][Serializer] Move normalizer/encoders definitions to xml file & remove unnecessary checks (ogizanagi)
This PR was squashed before being merged into the 3.3 branch (closes #24634). Discussion ---------- [FrameworkBundle][Serializer] Move normalizer/encoders definitions to xml file & remove unnecessary checks | Q | A | ------------- | --- | Branch? | 3.3 <!-- see comment below --> | Bug fix? | no | New feature? | no <!-- don't forget to update src/**/CHANGELOG.md files --> | BC breaks? | no | Deprecations? | no <!-- don't forget to update UPGRADE-*.md files --> | Tests pass? | yes | Fixed tickets | N/A <!-- #-prefixed issue number(s), if any --> | License | MIT | Doc PR | N/A - `DataUriNormalizer` was added in 3.1 (cc7b5af#diff-b7fc65c7d852312152e353f395fc70a8) - `DateTimeNormalizer` was added in 3.1 (6749a70#diff-17828084c07e429d87a1754420d312ef) - `JsonSerializableNormalizer` was added in 3.1 (a678881#diff-537ddf87a3d7ff914be4244a1e0c07f0) - `YamlEncoder` was added in 3.2 (9366a7d#diff-11720cb963c63bb0ad3fb23aba4ae294) `Yaml::DUMP_OBJECT` was added in 3.1 (286103b#diff-5199351a5995f15f224160f6969931c5R23) - `CsvEncoder` was added in 3.2 (e71f5be#diff-4de6bbbd40ea769ada711de28fb180c8) while on 3.3, FrameworkBundle [conflicts](https://github.com/symfony/symfony/blob/3.3/src/Symfony/Bundle/FrameworkBundle/composer.json#L70) with `"symfony/serializer": "<3.3"` and both 3.1 and 3.2 are EOL anyway. Moving these definitions to the `serializer.xml` file unclutters a bit the `FrameworkExtension`, make things clear about these service being always registered and allows the PhpStorm's Symfony plugin to properly detect and jump to them from classes. Commits ------- 0d7657b [FrameworkBundle][Serializer] Move normalizer/encoders definitions to xml file & remove unnecessary checks
2 parents 3e2aadc + 0d7657b commit 2f1af1b

File tree

3 files changed

+24
-56
lines changed

3 files changed

+24
-56
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,10 @@
4747
use Symfony\Component\PropertyInfo\PropertyListExtractorInterface;
4848
use Symfony\Component\PropertyInfo\PropertyTypeExtractorInterface;
4949
use Symfony\Component\Security\Core\Security;
50-
use Symfony\Component\Serializer\Encoder\CsvEncoder;
5150
use Symfony\Component\Serializer\Encoder\DecoderInterface;
5251
use Symfony\Component\Serializer\Encoder\EncoderInterface;
53-
use Symfony\Component\Serializer\Encoder\YamlEncoder;
5452
use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory;
55-
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
56-
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
5753
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
58-
use Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer;
5954
use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
6055
use Symfony\Component\Validator\ConstraintValidatorInterface;
6156
use Symfony\Component\Validator\ObjectInitializerInterface;
@@ -1278,39 +1273,6 @@ private function registerSecurityCsrfConfiguration(array $config, ContainerBuild
12781273
*/
12791274
private function registerSerializerConfiguration(array $config, ContainerBuilder $container, XmlFileLoader $loader)
12801275
{
1281-
if (class_exists('Symfony\Component\Serializer\Normalizer\DataUriNormalizer')) {
1282-
// Run before serializer.normalizer.object
1283-
$definition = $container->register('serializer.normalizer.data_uri', DataUriNormalizer::class);
1284-
$definition->setPublic(false);
1285-
$definition->addTag('serializer.normalizer', array('priority' => -920));
1286-
}
1287-
1288-
if (class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) {
1289-
// Run before serializer.normalizer.object
1290-
$definition = $container->register('serializer.normalizer.datetime', DateTimeNormalizer::class);
1291-
$definition->setPublic(false);
1292-
$definition->addTag('serializer.normalizer', array('priority' => -910));
1293-
}
1294-
1295-
if (class_exists('Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer')) {
1296-
// Run before serializer.normalizer.object
1297-
$definition = $container->register('serializer.normalizer.json_serializable', JsonSerializableNormalizer::class);
1298-
$definition->setPublic(false);
1299-
$definition->addTag('serializer.normalizer', array('priority' => -900));
1300-
}
1301-
1302-
if (class_exists(YamlEncoder::class) && defined('Symfony\Component\Yaml\Yaml::DUMP_OBJECT')) {
1303-
$definition = $container->register('serializer.encoder.yaml', YamlEncoder::class);
1304-
$definition->setPublic(false);
1305-
$definition->addTag('serializer.encoder');
1306-
}
1307-
1308-
if (class_exists(CsvEncoder::class)) {
1309-
$definition = $container->register('serializer.encoder.csv', CsvEncoder::class);
1310-
$definition->setPublic(false);
1311-
$definition->addTag('serializer.encoder');
1312-
}
1313-
13141276
$loader->load('serializer.xml');
13151277
$chainLoader = $container->getDefinition('serializer.mapping.chain_loader');
13161278

@@ -1367,7 +1329,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
13671329
$container->getDefinition('serializer.mapping.class_metadata_factory')->replaceArgument(
13681330
1, new Reference($config['cache'])
13691331
);
1370-
} elseif (!$container->getParameter('kernel.debug') && class_exists(CacheClassMetadataFactory::class)) {
1332+
} elseif (!$container->getParameter('kernel.debug')) {
13711333
$cacheMetadataFactory = new Definition(
13721334
CacheClassMetadataFactory::class,
13731335
array(

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,21 @@
2525
<service id="serializer.property_accessor" alias="property_accessor" />
2626

2727
<!-- Normalizer -->
28+
<service id="serializer.normalizer.data_uri" class="Symfony\Component\Serializer\Normalizer\DataUriNormalizer">
29+
<!-- Run before serializer.normalizer.object -->
30+
<tag name="serializer.normalizer" priority="-920" />
31+
</service>
32+
33+
<service id="serializer.normalizer.datetime" class="Symfony\Component\Serializer\Normalizer\DateTimeNormalizer">
34+
<!-- Run before serializer.normalizer.object -->
35+
<tag name="serializer.normalizer" priority="-910" />
36+
</service>
37+
38+
<service id="serializer.normalizer.json_serializable" class="Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer">
39+
<!-- Run before serializer.normalizer.object -->
40+
<tag name="serializer.normalizer" priority="-900" />
41+
</service>
42+
2843
<service id="serializer.normalizer.object" class="Symfony\Component\Serializer\Normalizer\ObjectNormalizer">
2944
<argument type="service" id="serializer.mapping.class_metadata_factory" />
3045
<argument>null</argument> <!-- name converter -->
@@ -86,6 +101,14 @@
86101
<tag name="serializer.encoder" />
87102
</service>
88103

104+
<service id="serializer.encoder.yaml" class="Symfony\Component\Serializer\Encoder\YamlEncoder">
105+
<tag name="serializer.encoder" />
106+
</service>
107+
108+
<service id="serializer.encoder.csv" class="Symfony\Component\Serializer\Encoder\CsvEncoder">
109+
<tag name="serializer.encoder" />
110+
</service>
111+
89112
<!-- Name converter -->
90113
<service id="serializer.name_converter.camel_case_to_snake_case" class="Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter" />
91114

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

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
use Symfony\Component\PropertyAccess\PropertyAccessor;
3636
use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
3737
use Symfony\Component\Serializer\Serializer;
38-
use Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory;
3938
use Symfony\Component\Serializer\Mapping\Loader\XmlFileLoader;
4039
use Symfony\Component\Serializer\Mapping\Loader\YamlFileLoader;
4140
use Symfony\Component\Serializer\Normalizer\DataUriNormalizer;
@@ -728,10 +727,6 @@ public function testRegisterSerializerExtractor()
728727

729728
public function testDataUriNormalizerRegistered()
730729
{
731-
if (!class_exists('Symfony\Component\Serializer\Normalizer\DataUriNormalizer')) {
732-
$this->markTestSkipped('The DataUriNormalizer has been introduced in the Serializer Component version 3.1.');
733-
}
734-
735730
$container = $this->createContainerFromFile('full');
736731

737732
$definition = $container->getDefinition('serializer.normalizer.data_uri');
@@ -743,10 +738,6 @@ public function testDataUriNormalizerRegistered()
743738

744739
public function testDateTimeNormalizerRegistered()
745740
{
746-
if (!class_exists('Symfony\Component\Serializer\Normalizer\DateTimeNormalizer')) {
747-
$this->markTestSkipped('The DateTimeNormalizer has been introduced in the Serializer Component version 3.1.');
748-
}
749-
750741
$container = $this->createContainerFromFile('full');
751742

752743
$definition = $container->getDefinition('serializer.normalizer.datetime');
@@ -758,10 +749,6 @@ public function testDateTimeNormalizerRegistered()
758749

759750
public function testJsonSerializableNormalizerRegistered()
760751
{
761-
if (!class_exists('Symfony\Component\Serializer\Normalizer\JsonSerializableNormalizer')) {
762-
$this->markTestSkipped('The JsonSerializableNormalizer has been introduced in the Serializer Component version 3.1.');
763-
}
764-
765752
$container = $this->createContainerFromFile('full');
766753

767754
$definition = $container->getDefinition('serializer.normalizer.json_serializable');
@@ -784,10 +771,6 @@ public function testObjectNormalizerRegistered()
784771

785772
public function testSerializerCacheActivated()
786773
{
787-
if (!class_exists(CacheClassMetadataFactory::class) || !method_exists(XmlFileLoader::class, 'getMappedClasses') || !method_exists(YamlFileLoader::class, 'getMappedClasses')) {
788-
$this->markTestSkipped('The Serializer default cache warmer has been introduced in the Serializer Component version 3.2.');
789-
}
790-
791774
$container = $this->createContainerFromFile('serializer_enabled');
792775

793776
$this->assertTrue($container->hasDefinition('serializer.mapping.cache_class_metadata_factory'));

0 commit comments

Comments
 (0)
0