登录

深入thinkphp5底层自动加载

php笔记
0 1620

ThinkPHP5.0 真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载。自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4。

自动加载

由于新版ThinkPHP完全采用了命名空间的特性,因此只需要给类库正确定义所在的命名空间,而命名空间的路径与类库文件的目录一致,那么就可以实现类的自动加载。

类库的自动加载检测顺序如下:

1、类库映射检测;2、PSR-4自动加载检测;3、PSR-0自动加载检测;

系统会按顺序检测,一旦检测生效的话,就会自动载入对应的类库文件。

首先我们打断点可以看到

默认没有Composer 可以到下方地址下载http://blog.csdn.net/wxqee/article/details/44983931Composer可以自动生成自动加载

PSR-0与PSR-4的区别1.PSR-4是PSR-0的改进版2.PSR-0后面不一定要有反斜线, PSR-4必须要有反斜线 否则会报错如图:

3.如果psr0最后一个类名,有下划线,会转换为分隔符sub_classname会转换成sub\classname.php 而psr4并没有实际意义4.psr0的目录结构更深 如图

类库映射 类名 和文件名要对应

使用psr4命名空间加载

发表评论

0 个回复