/** * @param AbstractField|Group|Fieldset $element * @param mixed $userInput * * @return array */ private function validateValue($element, $userInput) : array { $valid = true; $value = null; $typedValue = null; if ($element->isRequired() && is_null($userInput)) { $valid = false; } if ($element->getPrimitiveType() && !is_null($userInput)) { $typedValue = $this->validateType($userInput, $element->getPrimitiveType()); if (is_null($typedValue)) { $valid = false; } else { $value = $typedValue; } } else { $value = $userInput; } if (method_exists($element, 'isValid') && $valid == true && $element->getValue()) { $valid = $element->isValid(); } if (!$valid) { $value = null; } return [$valid, $value, $typedValue]; }