/** * 加载视图 * @param string $viewName 加载的视图名称 * @param string $className 加载的视图所在类 * @return none */ public function loadView($viewName, $className = '') { $viewPath = APP_UI_PATH; if (empty($className)) { $backtrace = debug_backtrace(); $className = get_class($backtrace[0]['object']); $classPath = str_replace("Controller.temp", "/", $className . '.temp'); file_exists($viewPath . $classPath . $viewName) ? include $viewPath . $classPath . $viewName : Printemps_Error(500, "加载的视图 " . $viewPath . $classPath . $viewName . " 不存在哦 : )!", __FILE__, __LINE__); } else { $classPath = $className . '/'; file_exists($viewPath . $classPath . $viewName) ? include $viewPath . $classPath . $viewName : Printemps_Error(500, "加载的视图 " . $viewPath . $classPath . $viewName . " 不存在哦 : )!", __FILE__, __LINE__); } }
/** * 加载控制器:class格式为控制器名+Controller,如indexController * Controller 最好继承 Printemps,已获得最佳性能 * @type static * @param string $className 要加载的控制器名,默认加载index * @param string $methodName 要加载的方法名,默认加载run * @param array or null $param 通过URL路由传入的参数 * @return none */ static function loadController($className, $methodName) { global $param; empty($className) ? $controllerName = 'index' : ($controllerName = $className); if (!class_exists($controllerName . 'Controller')) { if (file_exists(APP_CORE_PATH . 'Controller/' . $controllerName . '.class.php')) { require APP_CORE_PATH . 'Controller/' . $controllerName . '.class.php'; if (!class_exists($controllerName . 'Controller')) { Printemps_Error(500, "啊嘞,通过路由地址请求的控制器 {$controllerName} 不存在哦 :)"); } } else { Printemps_Error(500, "啊嘞,通过路由地址请求的控制器 {$controllerName} 不存在哦 :)"); } } $Controller = $controllerName . 'Controller'; $cl = new $Controller(); $functionName = $methodName; if (method_exists($cl, $functionName)) { $cl->{$functionName}(); } else { Printemps_Error(500, '啊嘞,通过路由地址请求的方法 {$functionName} 不存在哦 :)'); } }