/** * @param \EBT\ExtensionBuilder\Domain\Model\Plugin $plugin * @param \EBT\ExtensionBuilder\Domain\Model\Extension $extension * @return void */ private function validatePluginConfiguration($plugin, $extension) { $controllerActionCombinationConfiguration = $plugin->getControllerActionCombinations(); if (is_array($controllerActionCombinationConfiguration)) { $firstControllerAction = TRUE; foreach ($controllerActionCombinationConfiguration as $controllerName => $actionNames) { $this->validateActionConfiguration($controllerName, $actionNames, 'plugin ' . $plugin->getName(), $extension, $firstControllerAction); $firstControllerAction = FALSE; } } $noncachableActionConfiguration = $plugin->getNoncacheableControllerActions(); if (is_array($noncachableActionConfiguration)) { foreach ($noncachableActionConfiguration as $controllerName => $actionNames) { $this->validateActionConfiguration($controllerName, $actionNames, 'plugin ' . $plugin->getName(), $extension); } } $switchableActionConfiguration = $plugin->getSwitchableControllerActions(); if (is_array($switchableActionConfiguration)) { foreach ($switchableActionConfiguration as $switchableAction) { $configuredActions = array(); foreach ($switchableAction['actions'] as $actions) { // Format should be: Controller->action list($controllerName, $actionName) = explode('->', $actions); $configuredActions[] = $actionName; GeneralUtility::devlog('Controller' . $controllerName, 'extension_builder', 0, array($actionName)); $this->validateActionConfiguration($controllerName, array($actionName), 'plugin ' . $plugin->getName(), $extension); } $this->validateDependentActions($configuredActions, 'plugin ' . $plugin->getName()); } } }