Thinkphp5.1自動加載機制
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
歡迎關注本站公眾號,獲取更多信息