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