Example #1
0
 /**
  * inicia a controller conforme configurado em navigation e retorna o resultado do metodo chamado
  * @return HttpResultVO
  */
 private function getControllerResult()
 {
     $ignore_name = Config::getAliasFolder();
     if (Config::getLocale()) {
         $ignore_name .= "/" . Config::getLocale();
     }
     //url com trata com regras de rota
     $url = explode("/", Config::rewriteUrl(Navigation::getURI($ignore_name, Navigation::URI_RETURN_TYPE_STRING)));
     //inicia a controller
     $retornoDaController = self::searchController($url, Config::FOLDER_REQUEST_CONTROLER);
     //afiliados ( afiliate) reconhecer aqui a poss�vel origem do internauta atrav�s do restFolder afiliate.N
     $arrayVariable = Navigation::getVariableArraySlug($retornoDaController->arrayRestFolder);
     if (!$retornoDaController->success) {
         //pega o nome da classe para instanciar e executa o init
         $tempExplode = explode("/", Config::URL_DEFAULT_CONTROLLER);
         $className = $tempExplode[count($tempExplode) - 1];
         $className = str_replace(array(".class.php", ".php"), "", $className);
         $retornoDaController->className = $className;
         $retornoDaController->methodName = "init";
         $retornoDaController->urlToInclude = Config::URL_DEFAULT_CONTROLLER;
     }
     $className = $retornoDaController->className;
     $methodName = $retornoDaController->methodName;
     //inclui a controller
     include_once $retornoDaController->urlToInclude;
     //instancia
     $instancia = new $className($retornoDaController->arrayRestFolder);
     //executa o metodo e este deve retornar sempre uma HttpResultVO
     if (!ClassHandler::isMethodPublic($instancia, $methodName)) {
         $methodName = "init";
     }
     $HttpResultVO = $instancia->{$methodName}();
     return $HttpResultVO;
 }