Skip to content

Commit c543998

Browse files
[FrameworkBundle][Validator] Deprecate annotation occurrences
1 parent 0e4b60c commit c543998

24 files changed

+67
-37
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ CHANGELOG
2121
* Deprecate not setting the `framework.uid.default_uuid_version` config option; it will default to `7` in 7.0
2222
* Deprecate not setting the `framework.uid.time_based_uuid_version` config option; it will default to `7` in 7.0
2323
* Deprecate not setting the `framework.validation.email_validation_mode` config option; it will default to `html5` in 7.0
24+
* Deprecate `framework.validation.enable_annotations`, use `framework.validation.enable_attributes` instead
25+
* Deprecate `framework.serializer.enable_annotations`, use `framework.serializer.enable_attributes` instead
2426

2527
6.3
2628
---

DependencyInjection/Configuration.php

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1024,6 +1024,16 @@ private function addValidationSection(ArrayNodeDefinition $rootNode, callable $e
10241024
trigger_deprecation('symfony/framework-bundle', '6.4', 'Not setting the "framework.validation.email_validation_mode" config option is deprecated. It will default to "html5" in 7.0.');
10251025
}
10261026

1027+
if (isset($v['enable_annotations'])) {
1028+
trigger_deprecation('symfony/framework-bundle', '6.4', 'Option "enable_annotations" at "framework.validation" is deprecated. Use the "enable_attributes" option instead.');
1029+
1030+
if (!isset($v['enable_attributes'])) {
1031+
$v['enable_attributes'] = $v['enable_annotations'];
1032+
} else {
1033+
throw new LogicException('The "enable_annotations" and "enable_attributes" options at path "framework.validation" must not be both set. Only the "enable_attributes" option must be used.');
1034+
}
1035+
}
1036+
10271037
return $v;
10281038
})
10291039
->end()
@@ -1033,7 +1043,8 @@ private function addValidationSection(ArrayNodeDefinition $rootNode, callable $e
10331043
->{$enableIfStandalone('symfony/validator', Validation::class)}()
10341044
->children()
10351045
->scalarNode('cache')->end()
1036-
->booleanNode('enable_annotations')->{!class_exists(FullStack::class) ? 'defaultTrue' : 'defaultFalse'}()->end()
1046+
->booleanNode('enable_annotations')->end()
1047+
->booleanNode('enable_attributes')->{!class_exists(FullStack::class) ? 'defaultTrue' : 'defaultFalse'}()->end()
10371048
->arrayNode('static_method')
10381049
->defaultValue(['loadValidatorMetadata'])
10391050
->prototype('scalar')->end()
@@ -1139,10 +1150,25 @@ private function addSerializerSection(ArrayNodeDefinition $rootNode, callable $e
11391150
$rootNode
11401151
->children()
11411152
->arrayNode('serializer')
1153+
->validate()
1154+
->always(function ($v) {
1155+
if (isset($v['enable_annotations'])) {
1156+
trigger_deprecation('symfony/framework-bundle', '6.4', 'Option "enable_annotations" at "framework.serializer" is deprecated. Use the "enable_attributes" option instead.');
1157+
1158+
if (!isset($v['enable_attributes'])) {
1159+
$v['enable_attributes'] = $v['enable_annotations'];
1160+
} else {
1161+
throw new LogicException('The "enable_annotations" and "enable_attributes" options at path "framework.serializer" must not be both set. Only the "enable_attributes" option must be used.');
1162+
}
1163+
}
1164+
1165+
return $v;
1166+
})->end()
11421167
->info('serializer configuration')
11431168
->{$enableIfStandalone('symfony/serializer', Serializer::class)}()
11441169
->children()
1145-
->booleanNode('enable_annotations')->{!class_exists(FullStack::class) ? 'defaultTrue' : 'defaultFalse'}()->end()
1170+
->booleanNode('enable_annotations')->end()
1171+
->booleanNode('enable_attributes')->{!class_exists(FullStack::class) ? 'defaultTrue' : 'defaultFalse'}()->end()
11461172
->scalarNode('name_converter')->end()
11471173
->scalarNode('circular_reference_handler')->end()
11481174
->scalarNode('max_depth_handler')->end()

DependencyInjection/FrameworkExtension.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1657,8 +1657,8 @@ private function registerValidationConfiguration(array $config, ContainerBuilder
16571657
$definition = $container->findDefinition('validator.email');
16581658
$definition->replaceArgument(0, $config['email_validation_mode']);
16591659

1660-
if (\array_key_exists('enable_annotations', $config) && $config['enable_annotations']) {
1661-
$validatorBuilder->addMethodCall('enableAnnotationMapping', [true]);
1660+
if (\array_key_exists('enable_attributes', $config) && $config['enable_attributes']) {
1661+
$validatorBuilder->addMethodCall('enableAttributeMapping', [true]);
16621662
if ($this->isInitializedConfigEnabled('annotations') && method_exists(ValidatorBuilder::class, 'setDoctrineAnnotationReader')) {
16631663
$validatorBuilder->addMethodCall('setDoctrineAnnotationReader', [new Reference('annotation_reader')]);
16641664
}
@@ -1930,7 +1930,7 @@ private function registerSerializerConfiguration(array $config, ContainerBuilder
19301930
}
19311931

19321932
$serializerLoaders = [];
1933-
if (isset($config['enable_annotations']) && $config['enable_annotations']) {
1933+
if (isset($config['enable_attributes']) && $config['enable_attributes']) {
19341934
if ($container->getParameter('kernel.debug')) {
19351935
$container->removeDefinition('serializer.mapping.cache_class_metadata_factory');
19361936
}

Resources/config/schema/symfony-1.0.xsd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,6 +269,7 @@
269269
<xsd:attribute name="enabled" type="xsd:boolean" />
270270
<xsd:attribute name="cache" type="xsd:string" />
271271
<xsd:attribute name="enable-annotations" type="xsd:boolean" />
272+
<xsd:attribute name="enable-attributes" type="xsd:boolean" />
272273
<xsd:attribute name="static-method" type="xsd:boolean" />
273274
<xsd:attribute name="translation-domain" type="xsd:string" />
274275
<xsd:attribute name="strict-email" type="xsd:boolean" />
@@ -322,6 +323,7 @@
322323
</xsd:choice>
323324
<xsd:attribute name="enabled" type="xsd:boolean" />
324325
<xsd:attribute name="enable-annotations" type="xsd:boolean" />
326+
<xsd:attribute name="enable-attributes" type="xsd:boolean" />
325327
<xsd:attribute name="name-converter" type="xsd:string" />
326328
<xsd:attribute name="circular-reference-handler" type="xsd:string" />
327329
<xsd:attribute name="max-depth-handler" type="xsd:string" />

Tests/CacheWarmer/ValidatorCacheWarmerTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public function testWarmUp()
2626
$validatorBuilder->addXmlMapping(__DIR__.'/../Fixtures/Validation/Resources/person.xml');
2727
$validatorBuilder->addYamlMapping(__DIR__.'/../Fixtures/Validation/Resources/author.yml');
2828
$validatorBuilder->addMethodMapping('loadValidatorMetadata');
29-
$validatorBuilder->enableAnnotationMapping();
29+
$validatorBuilder->enableAttributeMapping();
3030

3131
$file = sys_get_temp_dir().'/cache-validator.php';
3232
@unlink($file);
@@ -46,7 +46,7 @@ public function testWarmUpWithAnnotations()
4646
{
4747
$validatorBuilder = new ValidatorBuilder();
4848
$validatorBuilder->addYamlMapping(__DIR__.'/../Fixtures/Validation/Resources/categories.yml');
49-
$validatorBuilder->enableAnnotationMapping();
49+
$validatorBuilder->enableAttributeMapping();
5050

5151
$file = sys_get_temp_dir().'/cache-validator-with-annotations.php';
5252
@unlink($file);

Tests/DependencyInjection/ConfigurationTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ protected static function getBundleDefaultConfig()
591591
],
592592
'validation' => [
593593
'enabled' => !class_exists(FullStack::class),
594-
'enable_annotations' => !class_exists(FullStack::class),
594+
'enable_attributes' => !class_exists(FullStack::class),
595595
'static_method' => ['loadValidatorMetadata'],
596596
'translation_domain' => 'validators',
597597
'mapping' => [
@@ -612,7 +612,7 @@ protected static function getBundleDefaultConfig()
612612
'serializer' => [
613613
'default_context' => ['foo' => 'bar', JsonDecode::DETAILED_ERROR_MESSAGES => true],
614614
'enabled' => true,
615-
'enable_annotations' => !class_exists(FullStack::class),
615+
'enable_attributes' => !class_exists(FullStack::class),
616616
'mapping' => ['paths' => []],
617617
],
618618
'property_access' => [

Tests/DependencyInjection/Fixtures/php/full.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
'annotations' => false,
6464
'serializer' => [
6565
'enabled' => true,
66-
'enable_annotations' => true,
66+
'enable_attributes' => true,
6767
'name_converter' => 'serializer.name_converter.camel_case_to_snake_case',
6868
'circular_reference_handler' => 'my.circular.reference.handler',
6969
'max_depth_handler' => 'my.max.depth.handler',

Tests/DependencyInjection/Fixtures/php/serializer_mapping.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
'php_errors' => ['log' => true],
77
'annotations' => false,
88
'serializer' => [
9-
'enable_annotations' => true,
9+
'enable_attributes' => true,
1010
'mapping' => [
1111
'paths' => [
1212
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/files',

Tests/DependencyInjection/Fixtures/php/serializer_mapping_without_annotations.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
'handle_all_throwables' => true,
77
'php_errors' => ['log' => true],
88
'serializer' => [
9-
'enable_annotations' => false,
9+
'enable_attributes' => false,
1010
'mapping' => [
1111
'paths' => [
1212
'%kernel.project_dir%/Fixtures/TestBundle/Resources/config/serializer_mapping/files',

Tests/DependencyInjection/Fixtures/php/validation_annotations.php renamed to Tests/DependencyInjection/Fixtures/php/validation_attributes.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
'secret' => 's3cr3t',
99
'validation' => [
1010
'enabled' => true,
11-
'enable_annotations' => true,
11+
'enable_attributes' => true,
1212
'email_validation_mode' => 'html5',
1313
],
1414
]);

0 commit comments

Comments
 (0)