Skip to content

Commit d21df03

Browse files
committed
Add GroupProviderInterface
1 parent 5f0a94b commit d21df03

31 files changed

+191
-162
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ class UnusedTagsPass implements CompilerPassInterface
101101
'twig.runtime',
102102
'validator.auto_mapper',
103103
'validator.constraint_validator',
104-
'validator.group_sequence_provider',
104+
'validator.group_provider',
105105
'validator.initializer',
106106
'workflow',
107107
];

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,7 @@
184184
use Symfony\Component\Uid\UuidV4;
185185
use Symfony\Component\Validator\Constraints\WhenValidator;
186186
use Symfony\Component\Validator\ConstraintValidatorInterface;
187+
use Symfony\Component\Validator\GroupProviderInterface;
187188
use Symfony\Component\Validator\GroupSequenceProviderInterface;
188189
use Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader;
189190
use Symfony\Component\Validator\ObjectInitializerInterface;
@@ -670,8 +671,8 @@ public function load(array $configs, ContainerBuilder $container)
670671
->addTag('serializer.normalizer');
671672
$container->registerForAutoconfiguration(ConstraintValidatorInterface::class)
672673
->addTag('validator.constraint_validator');
673-
$container->registerForAutoconfiguration(GroupSequenceProviderInterface::class)
674-
->addTag('validator.group_sequence_provider');
674+
$container->registerForAutoconfiguration(GroupProviderInterface::class)
675+
->addTag('validator.group_provider');
675676
$container->registerForAutoconfiguration(ObjectInitializerInterface::class)
676677
->addTag('validator.initializer');
677678
$container->registerForAutoconfiguration(MessageHandlerInterface::class)

src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
use Symfony\Component\Translation\DependencyInjection\TranslatorPathsPass;
6868
use Symfony\Component\Validator\DependencyInjection\AddAutoMappingConfigurationPass;
6969
use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass;
70-
use Symfony\Component\Validator\DependencyInjection\AddGroupSequenceProvidersPass;
70+
use Symfony\Component\Validator\DependencyInjection\AddGroupProvidersPass;
7171
use Symfony\Component\Validator\DependencyInjection\AddValidatorInitializersPass;
7272
use Symfony\Component\VarExporter\Internal\Hydrator;
7373
use Symfony\Component\VarExporter\Internal\Registry;
@@ -149,7 +149,7 @@ public function build(ContainerBuilder $container)
149149
// but as late as possible to get resolved parameters
150150
$container->addCompilerPass($registerListenersPass, PassConfig::TYPE_BEFORE_REMOVING);
151151
$this->addCompilerPassIfExists($container, AddConstraintValidatorsPass::class);
152-
$this->addCompilerPassIfExists($container, AddGroupSequenceProvidersPass::class);
152+
$this->addCompilerPassIfExists($container, AddGroupProvidersPass::class);
153153
$container->addCompilerPass(new AddAnnotationsCachedReaderPass(), PassConfig::TYPE_AFTER_REMOVING, -255);
154154
$this->addCompilerPassIfExists($container, AddValidatorInitializersPass::class);
155155
$this->addCompilerPassIfExists($container, AddConsoleCommandPass::class, PassConfig::TYPE_BEFORE_REMOVING);

src/Symfony/Bundle/FrameworkBundle/Resources/config/validator.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
use Symfony\Component\Validator\Constraints\NotCompromisedPasswordValidator;
2121
use Symfony\Component\Validator\Constraints\WhenValidator;
2222
use Symfony\Component\Validator\ContainerConstraintValidatorFactory;
23-
use Symfony\Component\Validator\ContainerGroupSequenceProviderFactory;
23+
use Symfony\Component\Validator\ContainerGroupProviderFactory;
2424
use Symfony\Component\Validator\Mapping\Loader\PropertyInfoLoader;
2525
use Symfony\Component\Validator\Validation;
2626
use Symfony\Component\Validator\Validator\ValidatorInterface;
@@ -42,8 +42,8 @@
4242
->call('setConstraintValidatorFactory', [
4343
service('validator.validator_factory'),
4444
])
45-
->call('setGroupSequenceProviderFactory', [
46-
service('validator.group_sequence_provider_factory'),
45+
->call('setGroupProviderFactory', [
46+
service('validator.group_provider_factory'),
4747
])
4848
->call('setTranslator', [
4949
service('translator')->ignoreOnInvalid(),
@@ -72,9 +72,9 @@
7272
abstract_arg('Constraint validators locator'),
7373
])
7474

75-
->set('validator.group_sequence_provider_factory', ContainerGroupSequenceProviderFactory::class)
75+
->set('validator.group_provider_factory', ContainerGroupProviderFactory::class)
7676
->args([
77-
abstract_arg('Group sequence provider locator'),
77+
abstract_arg('Group provider locator'),
7878
])
7979

8080
->load('Symfony\Component\Validator\Constraints\\', $validatorsDir.'/*Validator.php')

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
use Symfony\Component\Translation\DependencyInjection\TranslatorPass;
8181
use Symfony\Component\Translation\LocaleSwitcher;
8282
use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass;
83-
use Symfony\Component\Validator\DependencyInjection\AddGroupSequenceProvidersPass;
83+
use Symfony\Component\Validator\DependencyInjection\AddGroupProvidersPass;
8484
use Symfony\Component\Validator\Validation;
8585
use Symfony\Component\Validator\Validator\ValidatorInterface;
8686
use Symfony\Component\Validator\ValidatorBuilder;
@@ -1234,8 +1234,8 @@ public function testValidation()
12341234
$this->assertCount($annotations ? 8 : 7, $calls);
12351235
$this->assertSame('setConstraintValidatorFactory', $calls[0][0]);
12361236
$this->assertEquals([new Reference('validator.validator_factory')], $calls[0][1]);
1237-
$this->assertSame('setGroupSequenceProviderFactory', $calls[1][0]);
1238-
$this->assertEquals([new Reference('validator.group_sequence_provider_factory')], $calls[1][1]);
1237+
$this->assertSame('setGroupProviderFactory', $calls[1][0]);
1238+
$this->assertEquals([new Reference('validator.group_provider_factory')], $calls[1][1]);
12391239
$this->assertSame('setTranslator', $calls[2][0]);
12401240
$this->assertEquals([new Reference('translator', ContainerBuilder::IGNORE_ON_INVALID_REFERENCE)], $calls[2][1]);
12411241
$this->assertSame('setTranslationDomain', $calls[3][0]);
@@ -2385,7 +2385,7 @@ protected function createContainerFromFile(string $file, array $data = [], bool
23852385
$container->getCompilerPassConfig()->setAfterRemovingPasses([]);
23862386
}
23872387
$container->getCompilerPassConfig()->setBeforeOptimizationPasses([new LoggerPass()]);
2388-
$container->getCompilerPassConfig()->setBeforeRemovingPasses([new AddConstraintValidatorsPass(), new AddGroupSequenceProvidersPass(), new TranslatorPass()]);
2388+
$container->getCompilerPassConfig()->setBeforeRemovingPasses([new AddConstraintValidatorsPass(), new AddGroupProvidersPass(), new TranslatorPass()]);
23892389
$container->getCompilerPassConfig()->setAfterRemovingPasses([new AddAnnotationsCachedReaderPass()]);
23902390

23912391
if (!$compile) {

src/Symfony/Component/Validator/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ CHANGELOG
1212
* Deprecate `ValidatorBuilder::addDefaultDoctrineAnnotationReader()`
1313
* Add `number`, `finite-number` and `finite-float` types to `Type` constraint
1414
* Add the `withSeconds` option to the `Time` constraint that allows to pass time without seconds
15-
* Add support for implementing `GroupSequenceProviderInterface` outside of the underlying class
15+
* Add `GroupProviderInterface` to implement validation group providers outside the underlying class
1616

1717
6.3
1818
---

src/Symfony/Component/Validator/ContainerGroupSequenceProviderFactory.php renamed to src/Symfony/Component/Validator/ContainerGroupProviderFactory.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,34 +17,34 @@
1717
use Symfony\Component\Validator\Exception\UnexpectedTypeException;
1818

1919
/**
20-
* Factory class leveraging a PSR-11 container to create or retrieve instances of group sequence providers.
20+
* Factory class leveraging a PSR-11 container to create or retrieve instances of validation group providers.
2121
*
2222
* @author Yonel Ceruto <yonelceruto@gmail.com>
2323
*/
24-
class ContainerGroupSequenceProviderFactory implements GroupSequenceProviderFactoryInterface
24+
class ContainerGroupProviderFactory implements GroupProviderFactoryInterface
2525
{
2626
private array $providers = [];
2727

2828
public function __construct(private readonly ContainerInterface $container)
2929
{
3030
}
3131

32-
public function getInstance(string $class): GroupSequenceProviderInterface
32+
public function getInstance(string $class): GroupProviderInterface
3333
{
3434
if (!isset($this->providers[$class])) {
3535
if ($this->container->has($class)) {
3636
$this->providers[$class] = $this->container->get($class);
3737
} else {
3838
if (!class_exists($class)) {
39-
throw new GroupDefinitionException(sprintf('Group sequence provider "%s" does not exist or is not enabled as service. Check the "class" option in your constraint class "%s".', $class, GroupSequenceProvider::class));
39+
throw new GroupDefinitionException(sprintf('Group provider "%s" does not exist or is not enabled as service. Check the "class" option in your constraint class "%s".', $class, GroupSequenceProvider::class));
4040
}
4141

4242
$this->providers[$class] = new $class();
4343
}
4444
}
4545

46-
if (!$this->providers[$class] instanceof GroupSequenceProviderInterface) {
47-
throw new UnexpectedTypeException($this->providers[$class], GroupSequenceProviderInterface::class);
46+
if (!$this->providers[$class] instanceof GroupProviderInterface) {
47+
throw new UnexpectedTypeException($this->providers[$class], GroupProviderInterface::class);
4848
}
4949

5050
return $this->providers[$class];

src/Symfony/Component/Validator/DependencyInjection/AddGroupSequenceProvidersPass.php renamed to src/Symfony/Component/Validator/DependencyInjection/AddGroupProvidersPass.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@
1919
/**
2020
* @author Yonel Ceruto <yonelceruto@gmail.com>
2121
*/
22-
class AddGroupSequenceProvidersPass implements CompilerPassInterface
22+
class AddGroupProvidersPass implements CompilerPassInterface
2323
{
2424
public function process(ContainerBuilder $container): void
2525
{
26-
if (!$container->hasDefinition('validator.group_sequence_provider_factory')) {
26+
if (!$container->hasDefinition('validator.group_provider_factory')) {
2727
return;
2828
}
2929

3030
$providers = [];
31-
foreach ($container->findTaggedServiceIds('validator.group_sequence_provider', true) as $id => $attributes) {
31+
foreach ($container->findTaggedServiceIds('validator.group_provider', true) as $id => $attributes) {
3232
$definition = $container->getDefinition($id);
3333

3434
if (isset($attributes[0]['alias'])) {
@@ -39,7 +39,7 @@ public function process(ContainerBuilder $container): void
3939
}
4040

4141
$container
42-
->getDefinition('validator.group_sequence_provider_factory')
42+
->getDefinition('validator.group_provider_factory')
4343
->replaceArgument(0, ServiceLocatorTagPass::register($container, $providers))
4444
;
4545
}

src/Symfony/Component/Validator/GroupSequenceProviderFactory.php renamed to src/Symfony/Component/Validator/GroupProviderFactory.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@
1212
namespace Symfony\Component\Validator;
1313

1414
/**
15-
* Factory class for creating or retrieving instances of group sequence providers.
15+
* Factory class for creating or retrieving instances of validation group providers.
1616
*
1717
* @author Yonel Ceruto <yonelceruto@gmail.com>
1818
*/
19-
class GroupSequenceProviderFactory implements GroupSequenceProviderFactoryInterface
19+
class GroupProviderFactory implements GroupProviderFactoryInterface
2020
{
2121
public function __construct(private array $providers = [])
2222
{
2323
}
2424

25-
public function getInstance(string $class): GroupSequenceProviderInterface
25+
public function getInstance(string $class): GroupProviderInterface
2626
{
2727
return $this->providers[$class] ??= new $class();
2828
}

src/Symfony/Component/Validator/GroupSequenceProviderFactoryInterface.php renamed to src/Symfony/Component/Validator/GroupProviderFactoryInterface.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
namespace Symfony\Component\Validator;
1313

1414
/**
15-
* Handles the creation of group sequence providers.
15+
* Handles the creation of validation group providers.
1616
*
1717
* @author Yonel Ceruto <yonelceruto@gmail.com>
1818
*/
19-
interface GroupSequenceProviderFactoryInterface
19+
interface GroupProviderFactoryInterface
2020
{
21-
public function getInstance(string $class): GroupSequenceProviderInterface;
21+
public function getInstance(string $class): GroupProviderInterface;
2222
}

0 commit comments

Comments
 (0)