TP5代码学习笔记:Loader

自动加载Loader类一.概述系统会调用Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载。系统的自动加载由两个部分组成:1.注册系统的自动加载方法 \think\Loader::autoload2.注册Composer自动加载(符合Composer规范即可)一个类库的自动加载检测
摘要由CSDN通过智能技术生成

自动加载Loader

一.概述

系统会调用Loader::register()方法注册自动加载,在这一步完成后,所有符合规范的类库(包括Composer依赖加载的第三方类库)都将自动加载。
系统的自动加载由两个部分组成:

1.注册系统的自动加载方法 \think\Loader::autoload

2.注册Composer自动加载(符合Composer规范即可)

一个类库的自动加载检测顺序为:

1.是否定义类库映射;

2.Composer自动加载检测;

3.是否为注册的命名空间;

4.检测EXTEND_PATH目录下的扩展类库;

如果检测到以上任何一处,则按照PSR-4命名规范自动加载。

可以看到,定义类库映射的方式是最高效的。

 

二.autoload类

Loader::autoload($class); 中打印出$class,运行如下:

  

可见$class为带命名空间的类名。

 

检测命名空间别名:有没有自动加载

比如定义了一个类 kukiiu/Upload。给他定义一个命名空间别名org,这样我使用org/Upload类,就会用kukiiu/Upload类重新定义一个org/Upload类。

定义命名空间别名方法:

1.\think\Loader::addNamespaceAlias('org','kukiiu');

 

检查是否定义类库映射

打印出$map可看到里面的每项元素如下所示:

["think\App"]=> string(45) "F:\hwphp\study\thin

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值