Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 2f1af1b

Browse filesBrowse 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
Copy full SHA for 2f1af1b

File tree

3 files changed

+24
-56
lines changed
Filter options

3 files changed

+24
-56
lines changed

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

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php
+1-39Lines 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

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Resources/config/serializer.xml
+23Lines 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

Copy file name to clipboardExpand all lines: src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php
-17Lines 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)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.