/** * Tests if the property is required because of its validation groups. * * @param ValidatorPropertyMetadataInterface $validatorPropertyMetadata * @param array $options * * @return bool */ private function isRequiredByGroups(ValidatorPropertyMetadataInterface $validatorPropertyMetadata, array $options) : bool { foreach ($options['validation_groups'] as $validationGroup) { if (!is_string($validationGroup)) { continue; } foreach ($validatorPropertyMetadata->findConstraints($validationGroup) as $constraint) { if ($this->isRequired($constraint)) { return true; } } } return false; }
/** * Adds a property metadata. * * @param PropertyMetadataInterface $metadata */ private function addPropertyMetadata(PropertyMetadataInterface $metadata) { $property = $metadata->getPropertyName(); $this->members[$property][] = $metadata; }