<?php namespace KIF\Core; use Exception; const VERSION = '0.0.1'; const AUTHOR = 'gaoxiaogang@gmail.com'; class Core { static public function autoload($class_name) { // var_dump($class_name); $class_name = str_replace('/', '', $class_name); $class_name = str_replace('.', '', $class_name); $class_name = str_replace('\\', '/', $class_name); $tmp_ds_pos = strpos($class_name, '/'); if ($tmp_ds_pos !== false) { $root_namespace = substr($class_name, 0, $tmp_ds_pos); $class_name = substr($class_name, $tmp_ds_pos+1); } else { $root_namespace = ''; } # 当前app的库路径 if ($root_namespace) { if ($root_namespace == 'KIF') { $class_path = KIF_PATH . DS . $class_name . '.class.php'; } else { try {# 框架一定会先加载KIF命名空间下的类,所以到这里Config肯定已被外部app初始化了 $allConfigs = Config::all(); foreach ($allConfigs as $config) { if ($config['Namespace'] == $root_namespace) { $app_lib_path = $config['Lib_Path']; $class_path = $app_lib_path . DS . $class_name . '.class.php'; break; } } } catch (Exception $e) { // do nothing } } if (file_exists($class_path)) { return require_once($class_path); } } else { $class_path = KIF_PATH . DS . $class_name . '.class.php'; if (file_exists($class_path)) { return require_once($class_path); } else { $app_lib_path = Config::getInstance()->get('Lib_Path'); $class_path = $app_lib_path . DS . $class_name . '.class.php'; if (file_exists($class_path)) { return require_once($class_path); } } } } }