protected static function normalize($request) { if (is_null($request)) { $request = Mapper::parse(); } $request['controller'] = Inflector::hyphenToUnderscore($request['controller']); $request['action'] = Inflector::hyphenToUnderscore($request['action']); return $request; }
/** * Chama o controller e a action solicitadas pela URL. * * @return mixed Instância do novo controller ou falso em caso de erro */ public function dispatch() { $path = Mapper::parse(); $path["controller"] = Inflector::hyphenToUnderscore($path["controller"]); $path["action"] = Inflector::hyphenToUnderscore($path["action"]); $controller_name = Inflector::camelize($path["controller"]) . "Controller"; if ($controller =& ClassRegistry::load($controller_name, "Controller")) { if (!can_call_method($controller, $path['action']) && !App::path("View", "{$path['controller']}/{$path['action']}.{$path['extension']}")) { $this->error("missingAction", array("controller" => $path["controller"], "action" => $path["action"])); return false; } } else { if (App::path("View", "{$path['controller']}/{$path['action']}.{$path['extension']}")) { $controller =& ClassRegistry::load("AppController", "Controller"); } else { $this->error("missingController", array("controller" => $path["controller"])); return false; } } $controller->params = $path; $controller->componentEvent("initialize"); $controller->beforeFilter(); $controller->componentEvent("startup"); if (in_array($path["action"], $controller->methods) && can_call_method($controller, $path["action"])) { $params = $path["params"]; if (!is_null($path["id"])) { $params = array_merge(array($path["id"]), $params); } call_user_func_array(array(&$controller, $path["action"]), $params); } if ($controller->autoRender) { $controller->render(); } $controller->componentEvent("shutdown"); echo $controller->output; $controller->afterFilter(); return $controller; }
/** * Define os parâmetros da url * * @return void */ private function urlParams() { $this->urlParams = Mapper::parse(); }
/** * Construtor */ public function __construct() { $params = Mapper::parse(); if ($params['prefix'] == $this->privatePrefix) { $this->isPrivate = true; } }