51 parent::__construct();
65 throw new \InvalidArgumentException(
'Controller arguments must be valid TYPO3\\CMS\\Extbase\\Mvc\\Controller\\Argument objects.', 1187953786);
67 $argumentName = $value->getName();
68 parent::offsetSet($argumentName, $value);
69 $this->argumentNames[$argumentName] =
true;
81 throw new \InvalidArgumentException(
'Controller arguments must be valid TYPO3\\CMS\\Extbase\\Mvc\\Controller\\Argument objects.', 1187953787);
94 parent::offsetUnset($translatedOffset);
95 unset($this->argumentNames[$translatedOffset]);
96 if ($offset != $translatedOffset) {
97 unset($this->argumentShortNames[$offset]);
110 return parent::offsetExists($translatedOffset);
123 if ($translatedOffset ===
'') {
124 throw new \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException(
'The argument "' . $offset .
'" does not exist.', 1216909923);
126 return parent::offsetGet($translatedOffset);
140 public function addNewArgument($name, $dataType =
'Text', $isRequired =
false, $defaultValue =
null)
143 $argument = $this->objectManager->get(\
TYPO3\CMS\
Extbase\Mvc\Controller\Argument::class, $name, $dataType);
174 throw new \TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException(
'An argument "' . $argumentName .
'" does not exist.', 1195815178);
198 return array_keys($this->argumentNames);
210 foreach ($this as $argument) {
224 public function __call($methodName, array $arguments)
226 if (strpos($methodName,
'set') !== 0) {
227 throw new \LogicException(
'Unknown method "' . $methodName .
'".', 1210858451);
232 $argument = parent::offsetGet($firstLowerCaseArgumentName);
235 $argument = parent::offsetGet($firstUpperCaseArgumentName);
253 return $argumentName;
256 foreach ($this as $argument) {
257 if ($argumentName === $argument->getShortName()) {
258 return $argument->getName();
269 foreach ($this->argumentNames as $argumentName => $booleanValue) {
270 parent::offsetUnset($argumentName);
272 $this->argumentNames = [];
284 'Method ' . __METHOD__ .
' is deprecated and will be removed in TYPO3 v10.0.',
296 $results = new \TYPO3\CMS\Extbase\Error\Result();
298 foreach ($this as $argument) {
299 $argumentValidationResults = $argument->validate();
300 if ($argumentValidationResults ===
null) {
303 $results->forProperty($argument->getName())->merge($argumentValidationResults);