php autoload 應用2

用了一陣Laravel後發現很少有include和require,覺得有點奇怪,思考Laravel是怎麼完成文件導入的。

其實Laravel依舊還是用include或者require的,只是都寫在一個函數裏了。

就像這樣:

?
1
2
3
function autoload($path){
    require_once($path);
}

一般每次導入的PHP文件不只一兩個,會有很多,所以要定義一個數組來存儲“類和PHP文件的映射關係”,就像這樣:

?
1
2
3
4
5
$classmap=[
        'DB'=>'api.php',
        'FileSystem'=>'api.php',
        'Session'=>'api.php'
];

然後,對數組進行遍歷,不要再寫for循環了,用一個優雅的函數就可以解決。

?
1
array_map("autoload",$classmap);

我們來看看真正的Laravel是怎麼定義這個數組的,映射文件在\vendor\composer的autoload_classmap.php裏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章