Example #1
0
 private function autoload()
 {
     $system = CoreLoader::$system;
     $autoload_helper = $system['helper_file_autoload'];
     $autoload_library = $system['library_file_autoload'];
     $autoload_models = $system['models_file_autoload'];
     foreach ($autoload_helper as $val) {
         if (is_array($val)) {
             $key = key($val);
             $val = $val[$key];
             $this->helper($key, $val);
         } else {
             $this->helper($val);
         }
     }
     foreach ($autoload_library as $key => $val) {
         if (is_array($val)) {
             $new = isset($val['new']) ? $val['new'] : true;
             $key = key($val);
             $val = $val[$key];
             $this->lib($key, $val, $new);
         } else {
             $this->lib($val);
         }
     }
     foreach ($autoload_models as $key => $val) {
         if (is_array($val)) {
             $key = key($val);
             $val = $val[$key];
             $this->model($key, $val);
         } else {
             $this->model($val);
         }
     }
     /**
      * 如果使用了自定义缓存驱动,加载相应的文件
      */
     static $included = array();
     foreach ($system['cache_drivers'] as $filepath) {
         $file = pathinfo($filepath, PATHINFO_BASENAME);
         $namex = str_replace('.php', '', $file);
         //只include选择的缓存驱动文件
         if ($namex == $system['cache_config']['storage']) {
             if (!isset($included[Fn::truepath($filepath)])) {
                 CoreLoader::includeOnce($filepath);
             } else {
                 $included[Fn::truepath($filepath)] = 1;
             }
         }
     }
 }
Example #2
0
 public static function includeOnce($file_path)
 {
     $key = md5(Fn::truepath(Fn::convertPath($file_path)));
     if (!isset(self::$files[$key])) {
         include $file_path;
         self::$files[$key] = 1;
     }
 }