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; } } } }
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; } }