深入thinkphp5底层自动加载
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命名空间加载