美文网首页
Tp5 类的自动加载

Tp5 类的自动加载

作者: HueyYao | 来源:发表于2021-02-06 19:01 被阅读0次

    Tp5 类的自动加载

    为了实现创建自定义目录 可以use他的类库文件来实现功能这时候就需要配置修改对应自动加载的文件

    首先添加自定义目录\tp5\hueyyao\ali\Send.php

    想要use Send.php文件来使用时 就需要接下来的操作

    修改\tp5\thinkphp\library\think\Loader.php文件

    在第115行

    self::addAutoLoadDir($rootPath . 'extend');
    

    下添加例如一下的信息

    self::addAutoLoadDir($rootPath . 'hueyyao');
    

    整理方法演示如下:

        // 注册自动加载机制
        public static function register($autoload = '')
        {
            // 注册系统自动加载
            spl_autoload_register($autoload ?: 'think\\Loader::autoload', true, true);
    
            $rootPath = self::getRootPath();
    
            self::$composerPath = $rootPath . 'vendor' . DIRECTORY_SEPARATOR . 'composer' . DIRECTORY_SEPARATOR;
    
            // Composer自动加载支持
            if (is_dir(self::$composerPath)) {
                if (is_file(self::$composerPath . 'autoload_static.php')) {
                    require self::$composerPath . 'autoload_static.php';
    
                    $declaredClass = get_declared_classes();
                    $composerClass = array_pop($declaredClass);
    
                    foreach (['prefixLengthsPsr4', 'prefixDirsPsr4', 'fallbackDirsPsr4', 'prefixesPsr0', 'fallbackDirsPsr0', 'classMap', 'files'] as $attr) {
                        if (property_exists($composerClass, $attr)) {
                            self::${$attr} = $composerClass::${$attr};
                        }
                    }
                } else {
                    self::registerComposerLoader(self::$composerPath);
                }
            }
    
            // 注册命名空间定义
            self::addNamespace([
                'think'  => __DIR__,
                'traits' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'traits',
            ]);
    
            // 加载类库映射文件
            if (is_file($rootPath . 'runtime' . DIRECTORY_SEPARATOR . 'classmap.php')) {
                self::addClassMap(__include_file($rootPath . 'runtime' . DIRECTORY_SEPARATOR . 'classmap.php'));
            }
    
            // 自动加载extend目录
            self::addAutoLoadDir($rootPath . 'extend');
            self::addAutoLoadDir($rootPath . 'hueyyao');
        }
    
    

    相关文章

      网友评论

          本文标题:Tp5 类的自动加载

          本文链接:https://www.haomeiwen.com/subject/rpmotltx.html