Tp5自动加载Loader类学习

27 篇文章 0 订阅
10 篇文章 0 订阅

Tp5自动加载Loader类学习


spl_autoload_register

自动用给定的函数尝试加载未定义的类

参数:

  1. 自动加载的函数
  2. 是否抛出异常
  3. true为添加至队首,false为添加至队尾

Loader的Register方法

注册系统自动加载

composer自动加载

调用了composer文件夹下的autoload_static.php文件

$prefixLengthPsr4——自动加载的类的命名空间的名称的长度

键为这个类的命名空间的首字母,值为这个类的命名空间的名称的长度

$prefixDirPsr4——自动加载的类的命名空间的对应路径

类的命名空间=>类的相对路径

注册命名空间

Loader会注册think类的命名空间和trait类的命名空间

addNamespace会调用addPsr4,添加psr4空间,此时在$prefixLengthPsr4和$prefixDirPsr4会增加这两个值

加载类库映射文件

addClassMap方法

自动加载extend目录


注册类库别名

类的自动加载

autoload方法调用findFile方法

findFIle方法会先寻找是否存在缓存classmap.php(里面存放了类对应的路径),若有直接返回文件路径

没有则会获取之前$prefixDirPsr4中的所在文件夹路径然后通过$prefixPathPsr4获得类的文件名,然后组装出完整的文件路径并返回。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值