if ($route === false) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/views/404.php"; die('match route'); } $ctrl = "controllers\\" . $route['controller'] . "Controller"; if (!file_exists($_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/" . $ctrl . ".php")) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/views/404.php"; die('not such controller!'); } $a = new $ctrl(); $params = $route['params']; if (method_exists($a, $route['action']) === false) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/views/404.php"; die('not such action in the controller!'); } $view = call_user_func_array(array($a, $route['action']), $params); if (is_object($view)) { $view_path = file_exists($_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/views/" . $view->view_file . ".php"); if (isset($view->data)) { foreach ($view->data as $key => $value) { ${$key} = $value; } } $auth = Auth::user(); if ($view_path === false) { require $_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/views/404.php"; die('no such view'); } else { require $_SERVER['DOCUMENT_ROOT'] . "/" . $dir . "/views/" . $view->view_file . ".php"; } }