/** * @param mixed $value * @param string $viewValue * @param Constraint[]|Constraint $constraints * @param string $subPath * @param ValuesBag $valuesBag * @param string[] $validationGroups */ private function validateValue($value, $viewValue, $constraints, $subPath, ValuesBag $valuesBag, $validationGroups = null) { if ($this->validator instanceof LegacyValidator) { $violations = $this->validator->validateValue($value, $constraints, $validationGroups); } else { $violations = $this->validator->validate($value, $constraints, $validationGroups); } foreach ($violations as $violation) { $valuesBag->addError($this->createError($violation, $viewValue, $subPath)); } }
/** * @param array $item * * @return boolean */ public function __invoke(array $item) { if (!$this->strict) { // Only validate properties which have an constaint. $temp = array_intersect(array_keys($item), array_keys($this->constraints)); $item = array_intersect_key($item, array_flip($temp)); } $constraints = new Constraints\Collection($this->constraints); $list = $this->validator->validateValue($item, $constraints); $currentLine = $this->line++; if (count($list) > 0) { $this->violations[$currentLine] = $list; if ($this->throwExceptions) { throw new ValidationException($list, $currentLine); } } return 0 === count($list); }