首页 > 代码库 > [李景山php]每天TP5-20161206|Loader.php-4
[李景山php]每天TP5-20161206|Loader.php-4
// 注册composer自动加载 private static function registerComposerLoader() {// 默认没有 ,不会执行 if (is_file(VENDOR_PATH . ‘composer/autoload_namespaces.php‘)) { $map = require VENDOR_PATH . ‘composer/autoload_namespaces.php‘; foreach ($map as $namespace => $path) { self::addPsr0($namespace, $path); } }// 加载命名空间 if (is_file(VENDOR_PATH . ‘composer/autoload_psr4.php‘)) { $map = require VENDOR_PATH . ‘composer/autoload_psr4.php‘; foreach ($map as $namespace => $path) { self::addPsr4($namespace, $path); } }// 加载 Psr4 标准 if (is_file(VENDOR_PATH . ‘composer/autoload_classmap.php‘)) { $classMap = require VENDOR_PATH . ‘composer/autoload_classmap.php‘; if ($classMap) { self::addClassMap($classMap); } }// 加载 classmap if (is_file(VENDOR_PATH . ‘composer/autoload_files.php‘)) { $includeFiles = require VENDOR_PATH . ‘composer/autoload_files.php‘; foreach ($includeFiles as $fileIdentifier => $file) { if (empty(self::$autoloadFiles[$fileIdentifier])) { __require_file($file); self::$autoloadFiles[$fileIdentifier] = true; } } }// 加载 文件 } /** * 导入所需的类库 同java的Import 本函数有缓存功能 * @param string $class 类库命名空间字符串 * @param string $baseUrl 起始路径 * @param string $ext 导入的文件扩展名 * @return boolean */ public static function import($class, $baseUrl = ‘‘, $ext = EXT) {// 导入 类文件 static $_file = [];// 静态文件 仓库 $key = $class . $baseUrl;// key 文件 $class = str_replace([‘.‘, ‘#‘], [DS, ‘.‘], $class);//处理 class if (isset($_file[$key])) { return true; }// 如果 加载过了 这个 文件, 就直接 if (empty($baseUrl)) {// 如果起始路径 为空,就是默认值 list($name, $class) = explode(DS, $class, 2);// 返回 类的 前面两个数组 if (isset(self::$prefixDirsPsr4[$name . ‘\\‘])) {// 如果存在这个 Psr4 // 注册的命名空间 $baseUrl = self::$prefixDirsPsr4[$name . ‘\\‘]; } elseif (‘@‘ == $name) { //加载当前模块应用类库 $baseUrl = App::$modulePath;// 获取 @ 方式 } elseif (is_dir(EXTEND_PATH . $name)) { $baseUrl = EXTEND_PATH;// 获取 基础 地址 } else { // 加载其它模块的类库 $baseUrl = APP_PATH . $name . DS; } } elseif (substr($baseUrl, -1) != DS) { $baseUrl .= DS; }// 获取 baseUrl // 如果类存在 则导入类库文件 if (is_array($baseUrl)) {// 如果 基础地址 为 baseUrl foreach ($baseUrl as $path) { $filename = $path . DS . $class . $ext;// baseUrl if (is_file($filename)) { break;// 找到了 文件 就退出 } } } else { $filename = $baseUrl . $class . $ext; }// 获取 了 filename if (!empty($filename) && is_file($filename)) {// 如果 没有 文件, 如果有这个文件 // 开启调试模式Win环境严格区分大小写 if (IS_WIN && pathinfo($filename, PATHINFO_FILENAME) != pathinfo(realpath($filename), PATHINFO_FILENAME)) { return false; }// 如果路径 不行 __include_file($filename);// 加载文件 $_file[$key] = true;// 执行 状态 return true; } return false; }
本文出自 “专注php 群号:414194301” 博客,请务必保留此出处http://jingshanls.blog.51cto.com/3357095/1859059
[李景山php]每天TP5-20161206|Loader.php-4
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。