TP5.1类的自动加载

mac2024-06-21  45

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

最新回复(0)