深入thinkphp5底層自動加載
ThinkPHP5.0 真正實現(xiàn)了按需加載,所有類庫采用自動加載機制,并且支持類庫映射和composer類庫的自動加載。
自動加載的實現(xiàn)由think\Loader類庫完成,自動加載規(guī)范符合PHP的PSR-4。
自動加載
由于新版ThinkPHP完全采用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與類庫文件的目錄一致,那么就可以實現(xiàn)類的自動加載。
類庫的自動加載檢測順序如下:
1、類庫映射檢測;2、PSR-4自動加載檢測;3、PSR-0自動加載檢測;
系統(tǒng)會按順序檢測,一旦檢測生效的話,就會自動載入對應的類庫文件。
首先我們打斷點可以看到
默認沒有Composer 可以到下方地址下載http://blog.csdn.net/wxqee/article/details/44983931Composer可以自動生成自動加載
PSR-0與PSR-4的區(qū)別1.PSR-4是PSR-0的改進版2.PSR-0后面不一定要有反斜線, PSR-4必須要有反斜線 否則會報錯如圖:
3.如果psr0最后一個類名,有下劃線,會轉(zhuǎn)換為分隔符sub_classname會轉(zhuǎn)換成sub\classname.php 而psr4并沒有實際意義4.psr0的目錄結(jié)構(gòu)更深 如圖
類庫映射 類名 和文件名要對應
使用psr4命名空間加載
?