protected function initializeActionMethodValidators()
{
list($validateGroupAnnotations, $actionMethodParameters, $actionValidateAnnotations, $actionIgnoredArguments) = $this->getInformationNeededForInitializeActionMethodValidators();
if (isset($validateGroupAnnotations[$this->actionMethodName])) {
$validationGroups = $validateGroupAnnotations[$this->actionMethodName];
} else {
$validationGroups = ['Default', 'Controller'];
}
if (isset($actionMethodParameters[$this->actionMethodName])) {
$methodParameters = $actionMethodParameters[$this->actionMethodName];
} else {
$methodParameters = [];
}
if (isset($actionValidateAnnotations[$this->actionMethodName])) {
$validateAnnotations = $actionValidateAnnotations[$this->actionMethodName];
} else {
$validateAnnotations = [];
}
$parameterValidators = $this->validatorResolver->buildMethodArgumentsValidatorConjunctions(get_class($this), $this->actionMethodName, $methodParameters, $validateAnnotations);
if (isset($actionIgnoredArguments[$this->actionMethodName])) {
$ignoredArguments = $actionIgnoredArguments[$this->actionMethodName];
} else {
$ignoredArguments = [];
}
foreach ($this->arguments as $argument) {
$argumentName = $argument->getName();
if (isset($ignoredArguments[$argumentName]) && !$ignoredArguments[$argumentName]['evaluate']) {
continue;
}
$validator = $parameterValidators[$argumentName];
$baseValidatorConjunction = $this->validatorResolver->getBaseValidatorConjunction($argument->getDataType(), $validationGroups);
if (count($baseValidatorConjunction) > 0) {
$validator->addValidator($baseValidatorConjunction);
}
$argument->setValidator($validator);
}
}