赛亿提成统计系统

Loader.php 2.9KB

    <?php namespace daswork; class Loader { // protected static $instance = []; // 类名映射 protected static $map = []; // 命名空间别名 protected static $namespaceAilas = []; // // 自动加载的文件 // private static $autoloadFiles = []; // 命名空间与路径映射 private static $namespaces = []; // 保存已加载的类 private static $classMaps = []; // // 自动加载 // public static function autoload($class) // { // // 检测命名空间别名 // if (!empty(self::$namespaces)) { // $namespace = dirname($class); // if (isset(self::$namespaces[$namespace])) { // $original = self::$namespaces[$namespace] . '\\' . basename($class); // if (class_exists($original)) { // return class_alias($original, $class, false); // } // } // } // if ($file = self::findFile($class)) { // // Win环境严格区分大小写 // if (IS_WIN && pathinfo($file, PATHINFO_FILENAME) != pathinfo(realpath($file), PATHINFO_FILENAME)) { // return false; // } // __include_file($file); // return true; // } // } private static function autoload($class) { if (in_array($class, self::$classMaps)) { return true; } if ($file = self::findFile($class)) { // Win环境严格区分大小写 if (IS_WIN && pathinfo($file, PATHINFO_FILENAME) != pathinfo(realpath($file), PATHINFO_FILENAME)) { return false; } __include_file($file); self::$classMaps[] = $class; return true; } } public static function findFile($class) { $namespace = \dirname($class); // 有命名空间映射的 if (isset(self::$namespaces[$namespace])) { $file = self::$namespaces[$namespace] . basename($class) . EXT; return $file; } // var_dump(substr($class,strpos($class, '\\') + 1)); $model = substr($class,0,strpos($class, '\\')); // var_dump($model); if ($model=='app') { $file = APP_PATH . DS. str_replace('\\', DS, substr($class,strpos($class, '\\') + 1)) . EXT; // var_dump($file); return $file; } } // 注册系统自动加载 public static function register($autoload = '') { spl_autoload_register($autoload ?: 'daswork\\Loader::autoload', true, true); self::$namespaces = [ 'daswork' => CORE_PATH, 'daswork\lib' => CORE_PATH . 'lib' . DS ]; } } /** * 作用范围隔离 * * @param $file * @return mixed */ function __include_file($file) { return include $file; } function __require_file($file) { return require $file; }