TP5.1类的自动加载

TP5类的自动加载

学会了作用就是:可以在框架中任意地方创建类,并调用

类的自动加载代码原理这里就说不清了,我兴趣的可以看看慕课网singwa老师的课:

https://coding.imooc.com/class/331.html

下面直接介绍如何使用:

类的加载文件路径:项目根目录\thinkphp\library\think\Loader.php

流程:index.php(入口文件)-》base.php-》Loader.php

1.如果关系到命名空间调用一个类:

在Loader.php文件中的register()方法里对应的地方加入这个类的"首目录"

        $rootPath = self::getRootPath();//获取根目录

        // 注册命名空间定义(键是命名空间,键值是命名空间路径)
        self::addNamespace([
            'think'  => __DIR__,
            'traits' => dirname(__DIR__) . DIRECTORY_SEPARATOR . 'traits',
            'script' => $rootPath.'script',
        ]);

这里引入了根目录下的"script"目录,那么则可调用"script"目录里的类或"script"目录里的文件夹下的类

2.如果不关系到命名空间,只关系到目录调用一个类:

这种方法也适用于需要命名空间的,调用一个类的情况

在Loader.php文件中的register()方法里对应的地方加入这个类的"首目录"

        // 自动加载extend目录(命名空间不需再加这个目录,直接下面的文件夹开头则行,必须是文件夹下类)
        self::addAutoLoadDir($rootPath . 'extend');
        self::addAutoLoadDir($rootPath . 'script');
        self::addAutoLoadDir($rootPath.'thinkphp'.DIRECTORY_SEPARATOR.'library'.DIRECTORY_SEPARATOR.'ali');//这样不行
        self::addAutoLoadDir($rootPath.'thinkphp'.DIRECTORY_SEPARATOR.'library');//这样才行

这里引入了根目录下的"script"目录,那么则可以调用里面的类,也可以用命名调用

3.关于类的调用,可看看:

https://blog.csdn.net/qq_41912505/article/details/99638955

发布了40 篇原创文章 · 获赞 14 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_41912505/article/details/102842895
今日推荐