Esempio n. 1
0
 /**
  * Builds a web request object from the raw HTTP information and the configuration
  *
  * @return \TYPO3\CMS\Extbase\Mvc\Web\Request The web request as an object
  */
 public function build()
 {
     $this->loadDefaultValues();
     $pluginNamespace = $this->extensionService->getPluginNamespace($this->extensionName, $this->pluginName);
     $parameters = \TYPO3\CMS\Core\Utility\GeneralUtility::_GPmerged($pluginNamespace);
     $files = $this->untangleFilesArray($_FILES);
     if (isset($files[$pluginNamespace]) && is_array($files[$pluginNamespace])) {
         $parameters = array_replace_recursive($parameters, $files[$pluginNamespace]);
     }
     $controllerName = $this->resolveControllerName($parameters);
     $actionName = $this->resolveActionName($controllerName, $parameters);
     /** @var $request \TYPO3\CMS\Extbase\Mvc\Web\Request */
     $request = $this->objectManager->get(\TYPO3\CMS\Extbase\Mvc\Web\Request::class);
     if ($this->vendorName !== null) {
         $request->setControllerVendorName($this->vendorName);
     }
     $request->setPluginName($this->pluginName);
     $request->setControllerExtensionName($this->extensionName);
     $request->setControllerName($controllerName);
     $request->setControllerActionName($actionName);
     $request->setRequestUri(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
     $request->setBaseUri(\TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SITE_URL'));
     $request->setMethod($this->environmentService->getServerRequestMethod());
     if (is_string($parameters['format']) && $parameters['format'] !== '') {
         $request->setFormat(filter_var($parameters['format'], FILTER_SANITIZE_STRING));
     } else {
         $request->setFormat($this->defaultFormat);
     }
     foreach ($parameters as $argumentName => $argumentValue) {
         $request->setArgument($argumentName, $argumentValue);
     }
     return $request;
 }