/** * display()方法 载入文件。生成编译文件和缓存文件 * @param file 文件名 * @author Colin <*****@*****.**> */ public function display($file) { //获取模板名 $filename = $this->getTemplateName($file); @(list($controller, $method) = Url::getCurrentUrl()); //默认控制器和默认方法 $default_controller = Config('DEFAULT_CONTROLLER'); $default_action = Config('DEFAULT_METHOD'); //检查默认控制器是否存在 if (!file_exists(APP_PATH . '/Controller/' . $default_controller . 'Controller.class.php')) { throw new MyError($default_controller . '控制器不存在!'); } $controller = empty($controller) ? $default_controller : $controller; //设置路径 $dirname = $this->template_dir . $controller . '/'; //编译文件目录 $dircname = $this->compile_dir . ltrim(APP_NAME, './') . '/' . $controller . '/'; //判断编译文件夹和缓存文件夹是否存在 $dir = array($this->compile_dir, $this->compile_dir . ltrim(APP_NAME, './'), $dircname); //生成文件夹 outdir($dir); //判断方法目录是否存在 if (!is_dir($dirname)) { throw new MyError($dirname . '目录不存在'); } //判断模板文件是否存在 if (!file_exists($file)) { throw new MyError($file . '模板文件不存在!'); } //生成编译文件 $parFile = $dircname . md5($filename) . $filename . '.php'; //判断编译文件是否存在 如果存在那么就直接调用编译文件 如果不存在 那么久重新编译生成 if (!file_exists($parFile) || filemtime($parFile) < filemtime($file)) { //编译文件的修改时间<tpl模板文件的修改时间 //实例化解析类 $_parser = ObjFactory::CreateTemplatesParse('tpl', $file); //调用解析类里面的公共方法 $_parser->comile($parFile); } //引入编译文件 require $parFile; }
/** * 目录结构方法 * @author Colin <*****@*****.**> */ public static function Dir() { self::loadFunction(); //加载常量 self::ReqConst(); $dir = array(APP_PATH, Module, RunTime, ControllerDIR, ModelDIR, ConfDIR, CommonDIR, APP_PATH . Config('TPL_DIR'), Config('CACHE_DIR')); foreach ($dir as $key => $value) { //创建文件夹 outdir($value); } //生成默认的文件 self::outDefaultFile(); }