예제 #1
0
 /**
  * @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());
         }
     }
 }