extensionName; } public function getControllerActions(): array { return $this->controllerActions; } public function getDefaultRouteOptions(): array { $allRoutes = []; foreach ($this->controllerActions as $controllerConfiguration) { foreach ($controllerConfiguration['actions'] as $actionName) { if ($allRoutes === []) { $allRoutes['_default'] = array_replace_recursive( $this->routeOptions, [ 'module' => $this, 'packageName' => $this->packageName, 'absolutePackagePath' => $this->absolutePackagePath, 'access' => $this->access, 'target' => Bootstrap::class . '::handleBackendRequest', 'controller' => $controllerConfiguration['alias'], 'action' => $actionName, ] ); } $allRoutes[$controllerConfiguration['alias'] . '_' . $actionName] = array_replace_recursive( $this->routeOptions, [ 'module' => $this, 'path' => $controllerConfiguration['alias'] . '/' . $actionName, 'packageName' => $this->packageName, 'absolutePackagePath' => $this->absolutePackagePath, 'access' => $this->access, 'target' => Bootstrap::class . '::handleBackendRequest', 'controller' => $controllerConfiguration['alias'], 'action' => $actionName, ] ); } } return $allRoutes; } protected static function sanitizeExtensionName(string $extensionName): string { return (string)str_replace(' ', '', ucwords(str_replace('_', ' ', $extensionName))); } protected static function sanitizeControllerActions(array $controllerActions): array { $sanitizedControllerActions = []; foreach ($controllerActions as $controllerName => $actions) { $sanitizedControllerActions[$controllerName] = [ 'actions' => (is_array($actions) ? $actions : GeneralUtility::trimExplode(',', $actions)), 'alias' => ExtensionUtility::resolveControllerAliasFromControllerClassName($controllerName), 'className' => $controllerName, ]; } return $sanitizedControllerActions; } public static function createFromConfiguration(string $identifier, array $configuration): static { $obj = parent::createFromConfiguration($identifier, $configuration); $obj->extensionName = self::sanitizeExtensionName((string)($configuration['extensionName'] ?? '')); $obj->controllerActions = self::sanitizeControllerActions((array)($configuration['controllerActions'] ?? [])); return $obj; } }