/** * @return ControllerHandler */ public static function instance() { if (ControllerHandler::$instance == null) { ControllerHandler::$instance = new ControllerHandler(); } return ControllerHandler::$instance; }
public function executeAction() { if ($this->route->isAuthRequired() && !Authentication::isAuthenticated()) { $loginRoute = Route::findRoute(\Config\App\LOGIN_PAGE_ROUTE, Route::METHOD_GET); $obj = ControllerHandler::instance()->redirectToRoute($loginRoute, $this->request); $action = $loginRoute->getAction(); $parameters = Route::getRouteParameters($this->route, $this->request); return call_user_method_array($action, $obj, $parameters); } $action = $this->route->getAction(); $parameters = Route::getRouteParameters($this->route, $this->request); return call_user_method_array($action, $this, $parameters); }
private function draw(Request $request) { $controller = ControllerHandler::instance()->create($request); $result = $controller->executeAction(); switch (gettype($result)) { case "string": case "integer": case "boolean": case "double": return $result; case "object": switch (get_class($result)) { case "Framework\\Application\\ActionResult": $viewData = $controller->viewData; eval("?>" . $result->view()); return ""; } default: throw new Exception("not supported"); } }