Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 2
0
 /**
  * 目录结构方法
  * @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();
 }