From 93c480795890f7565aee8c9ba5eb352ae60bbfbd Mon Sep 17 00:00:00 2001 From: Rastislav Brandobur Date: Fri, 13 Dec 2024 17:29:12 +0100 Subject: [PATCH] feat: added groups to SymfonyValidator --- .docs/mapping.md | 1 + src/Core/Mapping/Validator/SymfonyValidator.php | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.docs/mapping.md b/.docs/mapping.md index 756cf43..79e7335 100644 --- a/.docs/mapping.md +++ b/.docs/mapping.md @@ -250,6 +250,7 @@ services: - setConstraintValidatorFactory(Contributte\Validator\ContainerConstraintValidatorFactory()) - setTranslator(@Contributte\Translation\Translator) - setTranslationDomain('validators') + - setGroups(['input']) api: plugins: Apitte\Core\DI\Plugin\CoreMappingPlugin: diff --git a/src/Core/Mapping/Validator/SymfonyValidator.php b/src/Core/Mapping/Validator/SymfonyValidator.php index 8823b8c..9bd1792 100644 --- a/src/Core/Mapping/Validator/SymfonyValidator.php +++ b/src/Core/Mapping/Validator/SymfonyValidator.php @@ -21,6 +21,8 @@ class SymfonyValidator implements IEntityValidator private ?string $translationDomain = null; + private ?array $groups = null; + public function __construct(?Reader $reader = null) { $this->reader = $reader; @@ -42,6 +44,11 @@ public function setTranslationDomain(string $translationDomain): void $this->translationDomain = $translationDomain; } + public function setGroups(array $groups): void + { + $this->groups = $groups; + } + /** * @throws ValidationException * @phpcsSuppress SlevomatCodingStandard.TypeHints.TypeHintDeclaration.MissingParameterTypeHint @@ -67,7 +74,7 @@ public function validate(object $entity): void $validator = $validatorBuilder->getValidator(); /** @var ConstraintViolationListInterface $violations */ - $violations = $validator->validate($entity); + $violations = $validator->validate($entity, null, $this->groups); if (count($violations) > 0) { $fields = [];