Example #1
0
 /**
  * Compose action view related data.
  * @param string $moduleName
  * @param string $controllerName
  * @param string $actionName
  * @return array Array with action view class name, action view file and absolute action view file path.
  */
 private function composeActionViewData($moduleName, $controllerName, $actionName)
 {
     //ucfirst action view class name
     $controllerName = $this->fromHyphenToCamelCase($controllerName, FALSE);
     $actionName = $this->fromHyphenToCamelCase($actionName, TRUE);
     $actionViewData = $this->composeActionViewFileData($moduleName, $controllerName, $actionName);
     $actionViewClassName = $actionViewData[0];
     $actionViewFile = $actionViewData[1];
     $absActionViewFile = $actionViewData[2];
     if (file_exists($absActionViewFile)) {
         return array(0 => $actionViewClassName, 1 => $actionViewFile, 2 => $absActionViewFile);
     }
     //consider that $controllerName uses hyphen
     $controllerName = $this->fromCamelCaseToHyphen($controllerName);
     $actionViewData = $this->composeActionViewFileData($moduleName, $controllerName, $actionName);
     $actionViewClassName = $actionViewData[0];
     $actionViewFile = $actionViewData[1];
     $absActionViewFile = $actionViewData[2];
     if (file_exists($absActionViewFile)) {
         return array(0 => $actionViewClassName, 1 => $actionViewFile, 2 => $absActionViewFile);
     }
     //or lower case for first word
     $controllerName = $this->fromHyphenToCamelCase($controllerName, FALSE);
     $actionName = $this->fromHyphenToCamelCase($actionName, FALSE);
     $actionViewData = $this->composeActionViewFileData($moduleName, $controllerName, $actionName);
     $actionViewClassName = $actionViewData[0];
     $actionViewFile = $actionViewData[1];
     $absActionViewFile = $actionViewData[2];
     if (file_exists($absActionViewFile)) {
         return array(0 => $actionViewClassName, 1 => $actionViewFile, 2 => $absActionViewFile);
     }
     //consider that $controllerName uses hyphen and lower case for first word
     $controllerName = $this->fromCamelCaseToHyphen($controllerName);
     $actionName = $this->fromHyphenToCamelCase($actionName, FALSE);
     $actionViewData = $this->composeActionViewFileData($moduleName, $controllerName, $actionName);
     $actionViewClassName = $actionViewData[0];
     $actionViewFile = $actionViewData[1];
     $absActionViewFile = $actionViewData[2];
     if (file_exists($absActionViewFile)) {
         return array(0 => $actionViewClassName, 1 => $actionViewFile, 2 => $absActionViewFile);
     }
     //fianlly, index_actionView.php
     $name = $this->fromHyphenToCamelCase($controllerName, TRUE) . "_" . $this->fromHyphenToCamelCase($actionName, TRUE);
     $actionViewClassName = $name . self::VIEW_POSTFIX;
     $actionViewFile = "project" . DIRECTORY_SEPARATOR . "modules" . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR . "views" . DIRECTORY_SEPARATOR . $actionViewClassName . ".php";
     $absActionViewFile = PathService::getInstance()->getRootDir() . DIRECTORY_SEPARATOR . $actionViewFile;
     return array(0 => $actionViewClassName, 1 => $actionViewFile, 2 => $absActionViewFile);
 }