‪TYPO3CMS  11.5
ExtbaseRequestParameters.php
Go to the documentation of this file.
1 <?php
2 
3 /*
4  * This file is part of the TYPO3 CMS project.
5  *
6  * It is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU General Public License, either version 2
8  * of the License, or any later version.
9  *
10  * For the full copyright and license information, please read the
11  * LICENSE.txt file that was distributed with this source code.
12  *
13  * The TYPO3 project - inspiring people to share!
14  */
15 
16 namespace ‪TYPO3\CMS\Extbase\Mvc;
17 
25 
33 {
37  protected ‪$pluginName = '';
38 
45 
51  protected ‪$controllerObjectName;
52 
56  protected ‪$controllerName = 'Standard';
57 
61  protected ‪$controllerActionName = 'index';
62 
66  protected ‪$arguments = [];
67 
76  protected array ‪$internalArguments = [];
77 
81  protected ‪$format = 'html';
82 
87  protected ‪$dispatched = false;
88 
94  protected ‪$originalRequest;
95 
102 
109  public function ‪setDispatched($flag)
110  {
111  $this->dispatched = (bool)$flag;
112  }
113 
124  public function ‪isDispatched()
125  {
126  return ‪$this->dispatched;
127  }
128 
132  public function ‪__construct(string $controllerClassName = '')
133  {
134  $this->controllerObjectName = $controllerClassName;
135  }
136 
140  public function ‪getControllerObjectName(): string
141  {
143  }
144 
152  {
154  $this->controllerExtensionName = $nameParts['extensionName'];
155  $this->controllerName = $nameParts['controllerName'];
156  return $this;
157  }
158 
165  public function ‪setPluginName(‪$pluginName = null)
166  {
167  if (‪$pluginName !== null) {
168  $this->pluginName = ‪$pluginName;
169  }
170  return $this;
171  }
172 
178  public function ‪getPluginName()
179  {
181  }
182 
191  {
192  if (‪$controllerExtensionName !== null) {
193  $this->controllerExtensionName = ‪$controllerExtensionName;
194  }
195  return $this;
196  }
197 
204  {
206  }
207 
213  public function ‪getControllerExtensionKey()
214  {
215  return ‪GeneralUtility::camelCaseToLowerCaseUnderscored($this->controllerExtensionName);
216  }
217 
222 
227  {
228  // this is only needed as long as forwarded requests are altered and unless there
229  // is no new request object created by the request builder.
230  $this->controllerAliasToClassNameMapping = ‪$controllerAliasToClassNameMapping;
231  return $this;
232  }
233 
242  public function ‪setControllerName(‪$controllerName): self
243  {
244  if (!is_string(‪$controllerName) && ‪$controllerName !== null) {
245  throw new ‪InvalidControllerNameException('The controller name must be a valid string, ' . gettype(‪$controllerName) . ' given.', 1187176358);
246  }
247  if (‪$controllerName !== null) {
248  $this->controllerName = ‪$controllerName;
249  $this->controllerObjectName = $this->controllerAliasToClassNameMapping[‪$controllerName] ?? '';
250  // There might be no Controller Class, for example for Fluid Templates.
251  }
252  return $this;
253  }
254 
261  public function ‪getControllerName()
262  {
264  }
265 
275  public function ‪setControllerActionName($actionName): self
276  {
277  if (!is_string($actionName) && $actionName !== null) {
278  throw new ‪InvalidActionNameException('The action name must be a valid string, ' . gettype($actionName) . ' given (' . $actionName . ').', 1187176359);
279  }
280  if ($actionName[0] !== strtolower($actionName[0]) && $actionName !== null) {
281  throw new InvalidActionNameException('The action name must start with a lower case letter, "' . $actionName . '" does not match this criteria.', 1218473352);
282  }
283  if ($actionName !== null) {
284  $this->controllerActionName = $actionName;
285  }
286  return $this;
287  }
288 
294  public function ‪getControllerActionName(): string
295  {
297  if (‪$controllerObjectName !== '' && $this->controllerActionName === strtolower($this->controllerActionName)) {
298  // todo: this is nonsense! We can detect a non existing method in
299  // todo: \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin, if necessary.
300  // todo: At this point, we want to have a getter for a fixed value.
301  $actionMethodName = $this->controllerActionName . 'Action';
302  $classMethods = get_class_methods(‪$controllerObjectName);
303  if (is_array($classMethods)) {
304  foreach ($classMethods as $existingMethodName) {
305  if (strtolower($existingMethodName) === strtolower($actionMethodName)) {
306  $this->controllerActionName = substr($existingMethodName, 0, -6);
307  break;
308  }
309  }
310  }
311  }
313  }
314 
323  public function ‪setArgument(string $argumentName, $value): self
324  {
325  if ($argumentName === '') {
326  throw new ‪InvalidArgumentNameException('Invalid argument name.', 1210858767);
327  }
328  if ($argumentName[0] === '_' && $argumentName[1] === '_') {
329  $this->internalArguments[$argumentName] = $value;
330  return $this;
331  }
332  if (!in_array($argumentName, ['@extension', '@subpackage', '@controller', '@action', '@format'], true)) {
333  $this->arguments[$argumentName] = $value;
334  }
335  return $this;
336  }
337 
345  public function ‪setArguments(array ‪$arguments): self
346  {
347  $this->arguments = [];
348  foreach (‪$arguments as $argumentName => $argumentValue) {
349  $this->‪setArgument($argumentName, $argumentValue);
350  }
351  return $this;
352  }
353 
359  public function ‪getArguments()
360  {
362  }
363 
372  public function ‪getArgument($argumentName)
373  {
374  if (!isset($this->arguments[$argumentName])) {
375  throw new ‪NoSuchArgumentException('An argument "' . $argumentName . '" does not exist for this request.', 1176558158);
376  }
377  return $this->arguments[$argumentName];
378  }
379 
387  public function ‪hasArgument($argumentName)
388  {
389  return isset($this->arguments[$argumentName]);
390  }
391 
398  public function ‪setFormat(string ‪$format): self
399  {
400  $this->format = ‪$format;
401  return $this;
402  }
403 
409  public function ‪getFormat()
410  {
411  return ‪$this->format;
412  }
413 
420  public function ‪getOriginalRequest(): ?‪Request
421  {
423  }
424 
430  {
431  $this->originalRequest = ‪$originalRequest;
432  }
433 
441  {
442  if ($this->originalRequestMappingResults === null) {
443  return new ‪Result();
444  }
446  }
447 
453  {
454  $this->originalRequestMappingResults = ‪$originalRequestMappingResults;
455  }
456 
464  public function ‪getInternalArguments(): array
465  {
467  }
468 
476  public function ‪getInternalArgument($argumentName)
477  {
478  if (!isset($this->internalArguments[$argumentName])) {
479  return null;
480  }
481  return $this->internalArguments[$argumentName];
482  }
483 }
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$controllerExtensionName
‪string $controllerExtensionName
Definition: ExtbaseRequestParameters.php:42
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setControllerAliasToClassNameMapping
‪setControllerAliasToClassNameMapping(array $controllerAliasToClassNameMapping)
Definition: ExtbaseRequestParameters.php:215
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$controllerActionName
‪string $controllerActionName
Definition: ExtbaseRequestParameters.php:56
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$internalArguments
‪array $internalArguments
Definition: ExtbaseRequestParameters.php:70
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getArgument
‪string array getArgument($argumentName)
Definition: ExtbaseRequestParameters.php:361
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setControllerExtensionName
‪setControllerExtensionName($controllerExtensionName)
Definition: ExtbaseRequestParameters.php:180
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getControllerActionName
‪string getControllerActionName()
Definition: ExtbaseRequestParameters.php:283
‪TYPO3\CMS\Extbase\Annotation
Definition: IgnoreValidation.php:18
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\isDispatched
‪bool isDispatched()
Definition: ExtbaseRequestParameters.php:114
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setOriginalRequestMappingResults
‪setOriginalRequestMappingResults(Result $originalRequestMappingResults)
Definition: ExtbaseRequestParameters.php:441
‪TYPO3\CMS\Extbase\Mvc\Exception\InvalidControllerNameException
Definition: InvalidControllerNameException.php:25
‪TYPO3
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getFormat
‪string getFormat()
Definition: ExtbaseRequestParameters.php:398
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$arguments
‪array $arguments
Definition: ExtbaseRequestParameters.php:60
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setArgument
‪setArgument(string $argumentName, $value)
Definition: ExtbaseRequestParameters.php:312
‪TYPO3\CMS\Extbase\Mvc
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setControllerName
‪setControllerName($controllerName)
Definition: ExtbaseRequestParameters.php:231
‪TYPO3\CMS\Core\Utility\GeneralUtility\camelCaseToLowerCaseUnderscored
‪static string camelCaseToLowerCaseUnderscored($string)
Definition: GeneralUtility.php:853
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setFormat
‪setFormat(string $format)
Definition: ExtbaseRequestParameters.php:387
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getInternalArguments
‪array getInternalArguments()
Definition: ExtbaseRequestParameters.php:453
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$dispatched
‪bool $dispatched
Definition: ExtbaseRequestParameters.php:79
‪TYPO3\CMS\Extbase\Error\Result
Definition: Result.php:24
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setControllerActionName
‪setControllerActionName($actionName)
Definition: ExtbaseRequestParameters.php:264
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setDispatched
‪setDispatched($flag)
Definition: ExtbaseRequestParameters.php:99
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$pluginName
‪string $pluginName
Definition: ExtbaseRequestParameters.php:36
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\hasArgument
‪bool hasArgument($argumentName)
Definition: ExtbaseRequestParameters.php:376
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setArguments
‪setArguments(array $arguments)
Definition: ExtbaseRequestParameters.php:334
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setOriginalRequest
‪setOriginalRequest(\TYPO3\CMS\Extbase\Mvc\Request $originalRequest)
Definition: ExtbaseRequestParameters.php:418
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getControllerExtensionName
‪string getControllerExtensionName()
Definition: ExtbaseRequestParameters.php:193
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$controllerAliasToClassNameMapping
‪array $controllerAliasToClassNameMapping
Definition: ExtbaseRequestParameters.php:210
‪TYPO3\CMS\Core\Utility\ClassNamingUtility\explodeObjectControllerName
‪static array explodeObjectControllerName($controllerObjectName)
Definition: ClassNamingUtility.php:69
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getControllerName
‪string getControllerName()
Definition: ExtbaseRequestParameters.php:250
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setPluginName
‪setPluginName($pluginName=null)
Definition: ExtbaseRequestParameters.php:155
‪TYPO3\CMS\Core\Utility\ClassNamingUtility
Definition: ClassNamingUtility.php:26
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$controllerObjectName
‪string $controllerObjectName
Definition: ExtbaseRequestParameters.php:48
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\setControllerObjectName
‪setControllerObjectName($controllerObjectName)
Definition: ExtbaseRequestParameters.php:141
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$format
‪string $format
Definition: ExtbaseRequestParameters.php:74
‪TYPO3\CMS\Extbase\Mvc\Exception\InvalidArgumentNameException
Definition: InvalidArgumentNameException.php:25
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getControllerObjectName
‪string getControllerObjectName()
Definition: ExtbaseRequestParameters.php:130
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getControllerExtensionKey
‪string getControllerExtensionKey()
Definition: ExtbaseRequestParameters.php:203
‪TYPO3\CMS\Extbase\Mvc\Exception\InvalidActionNameException
Definition: InvalidActionNameException.php:25
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getOriginalRequest
‪TYPO3 CMS Extbase Mvc Request null getOriginalRequest()
Definition: ExtbaseRequestParameters.php:409
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getArguments
‪array getArguments()
Definition: ExtbaseRequestParameters.php:348
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$originalRequestMappingResults
‪TYPO3 CMS Extbase Error Result null $originalRequestMappingResults
Definition: ExtbaseRequestParameters.php:91
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters
Definition: ExtbaseRequestParameters.php:33
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:50
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$originalRequest
‪TYPO3 CMS Extbase Mvc Request null $originalRequest
Definition: ExtbaseRequestParameters.php:85
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\$controllerName
‪string $controllerName
Definition: ExtbaseRequestParameters.php:52
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\__construct
‪__construct(string $controllerClassName='')
Definition: ExtbaseRequestParameters.php:122
‪TYPO3\CMS\Extbase\Mvc\Request
Definition: Request.php:39
‪TYPO3\CMS\Extbase\Mvc\Exception\NoSuchArgumentException
Definition: NoSuchArgumentException.php:25
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getOriginalRequestMappingResults
‪TYPO3 CMS Extbase Error Result getOriginalRequestMappingResults()
Definition: ExtbaseRequestParameters.php:429
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getInternalArgument
‪string null getInternalArgument($argumentName)
Definition: ExtbaseRequestParameters.php:465
‪TYPO3\CMS\Extbase\Mvc\ExtbaseRequestParameters\getPluginName
‪string getPluginName()
Definition: ExtbaseRequestParameters.php:168