/** * Run dispatch process. * * @return mixed */ protected function dispatch() { Hook::event("PreDispatch"); $controllerName = Core::getRequest()->getGET("controller", "index"); $package = Core::getRequest()->getGET("package", DEFAULT_PACKAGE); $overridePackage = null; if (strpos($controllerName, ".")) { list($overridePackage, $controllerName) = explode(".", $controllerName); } self::$controllerName = $controllerName; $config = array("action" => Core::getRequest()->getGET("action", "index")); $class = ($overridePackage !== null ? $overridePackage : $package) . "/controller_" . lcfirst($controllerName); self::$controller = self::factory($class, $config); if (!self::$controller) { self::$controller = self::factory($package . "/controller_index", array("action" => "noroute")); } Hook::event("PostDispatch"); return self::$controller->run(); }