/** * @test */ public function testGetVendorNameAndExtensionNameWithVendorNameUnderscore() { list($vendorName, $extensionName) = ExtensionNamingUtility::getVendorNameAndExtensionName('FT3.foo_ext'); $this->assertSame('FT3', $vendorName); $this->assertSame('FooExt', $extensionName); }
/** * @param string $controllerName * @return string|NULL */ protected function buildExpectedAndExistingControllerClassName($controllerName) { $extensionName = $this->getControllerExtensionName(); list($vendorName, $extensionName) = ExtensionNamingUtility::getVendorNameAndExtensionName($extensionName); if (NULL !== $vendorName) { $controllerClassName = $vendorName . '\\' . $extensionName . '\\Controller\\' . $controllerName . 'Controller'; } else { $controllerClassName = $extensionName . '\\Controller\\' . $controllerName . 'Controller'; if (FALSE === class_exists($controllerClassName)) { $controllerClassName = 'Tx_' . $extensionName . '_Controller_' . $controllerName . 'Controller'; } } if (FALSE === class_exists($controllerClassName)) { $controllerClassName = NULL; } return $controllerClassName; }
/** * @param array $data * @return mixed */ public function conduct($data) { $extensionName = $this->getExtensionName(); /** @var $request Request */ $request = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Web\\Request'); $request->setControllerName($this->getController()); $request->setControllerActionName($this->getAction()); list($vendorName, $extensionName) = ExtensionNamingUtility::getVendorNameAndExtensionName($extensionName); $request->setControllerExtensionName($extensionName); if (NULL !== $vendorName) { $request->setControllerVendorName($vendorName); } $request->setArguments($data); /** @var $response Response */ $response = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Web\\Response'); /** @var $dispatcher Dispatcher */ $dispatcher = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Mvc\\Dispatcher'); $dispatcher->dispatch($request, $response); return $response->getContent(); }
/** * @param string $extensionKey * @param string $controllerName * @return boolean|string */ private static function buildControllerClassNameFromExtensionKeyAndControllerType($extensionKey, $controllerName) { if (TRUE === ExtensionNamingUtility::hasVendorName($extensionKey)) { list($vendorName, $extensionName) = ExtensionNamingUtility::getVendorNameAndExtensionName($extensionKey); $potentialClassName = $vendorName . '\\' . $extensionName . '\\Controller\\' . $controllerName . 'Controller'; } else { $extensionName = ExtensionNamingUtility::getExtensionName($extensionKey); $potentialClassName = $extensionName . '\\Controller\\' . $controllerName . 'Controller'; if (FALSE === class_exists($potentialClassName)) { $potentialClassName = 'Tx_' . $extensionName . '_Controller_' . $controllerName . 'Controller'; } } return $potentialClassName; }
/** * @param string $packageName * @return void */ public function setPackageName($packageName) { $this->packageName = $packageName; list($vendorName, $extensionName) = ExtensionNamingUtility::getVendorNameAndExtensionName($packageName); $this->request->setControllerVendorName($vendorName); $this->request->setControllerExtensionName($extensionName); }