栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

Loader.php-4

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;

            }

        }

    }// 加载 文件

}

 

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;

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/229593.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号