TYPO3 CMS  TYPO3_6-2
ArgumentsValidator.php
Go to the documentation of this file.
1 <?php
3 
22 
33  public function isValid($arguments) {
34  if (!$arguments instanceof \TYPO3\CMS\Extbase\Mvc\Controller\Arguments) {
35  throw new \InvalidArgumentException('Expected TYPO3\\CMS\\Extbase\\Mvc\\Controller\\Arguments, ' . gettype($arguments) . ' given.', 1241079561);
36  }
37  $this->errors = array();
38  $result = TRUE;
39  foreach ($arguments->getArgumentNames() as $argumentName) {
40  if ($this->isPropertyValid($arguments, $argumentName) === FALSE) {
41  $result = FALSE;
42  }
43  }
44  return $result;
45  }
46 
53  public function canValidate($object) {
54  return $object instanceof \TYPO3\CMS\Extbase\Mvc\Controller\Arguments;
55  }
56 
69  public function isPropertyValid($arguments, $argumentName) {
70  if (!$arguments instanceof \TYPO3\CMS\Extbase\Mvc\Controller\Arguments) {
71  throw new \InvalidArgumentException('Expected TYPO3\\CMS\\Extbase\\Mvc\\Controller\\Arguments, ' . gettype($arguments) . ' given.', 1241079562);
72  }
73  $argument = $arguments[$argumentName];
74  $validatorConjunction = $argument->getValidator();
75  if ($validatorConjunction === NULL) {
76  return TRUE;
77  }
78  $argumentValue = $argument->getValue();
79  if ($argumentValue === $argument->getDefaultValue() && $argument->isRequired() === FALSE) {
80  return TRUE;
81  }
82  if ($validatorConjunction->isValid($argumentValue) === FALSE) {
83  $this->addErrorsForArgument($validatorConjunction->getErrors(), $argumentName);
84  return FALSE;
85  }
86  return TRUE;
87  }
88 
97  protected function addErrorsForArgument(array $errors, $argumentName) {
98  if (!isset($this->errors[$argumentName])) {
99  $this->errors[$argumentName] = new \TYPO3\CMS\Extbase\Mvc\Controller\ArgumentError($argumentName);
100  }
101  $this->errors[$argumentName]->addErrors($errors);
102  }
103 }