Thinkphp5.1自动加载机制
自动加载机制
-
注册自动加载
- 引入静态自动加载映射文件,autoload_static.php
- 根据首字母前缀将不同的加载类归类-$prefixLengthsPsr4
- 将命令空间映射到指定文件目录下-$prefixDirsPsr4
- compose下载的包文件,需要加载的文件-$files
- 类映射关系-$classMap
- 检测是否有composer自动加载的支持
- 注册think、traints命名空间定义
- 查看runtime目录下是否有类映射文件存在,加载类库映射文件
- 自动加载extend目录
注册错误和异常机制
- Log
- Error
- Exception
- Handle
注册类库别名
- app
- Config
- ......
-
自动加载文件机制
- PSR4-获取文件顶部命名空间首字母,根据首字段查找到首字母相同部分的映射类
- PSR4-根据查找到对应字母相同的部分映射类文件,再取得*命名空间与类通过字符串查找匹配*命名空间是否相对应
- PSR4-匹配中,则取文件基目录(application目录)拼接去掉*命令中间,含有子级命名空间的文件类名(包括文件后缀),判断是否为文件,是,则返回,include该文件
- 若不是文件,则去查看扩展目录(extend目录)该文件是否存在,是,则返回,include该文件
- PSR4-的application&extend均匹配不中,则去PSR0匹配,同样也是先去application查找是否存在,再去extend查找
- 若不存在则该文件映射置为false