Laravel是怎麼實現autoload的?

用了一陣Laravel後發現不多有include和require,以爲有點奇怪,思考Laravel是怎麼完成文件導入的。php

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

就像這樣:數組

function autoload($path){
	require_once($path);
}

通常每次導入的PHP文件不僅一兩個,會有不少,因此要定義一個數組來存儲「類和PHP文件的映射關係」,就像這樣:composer

$classmap=[
		'DB'=>'api.php',
		'FileSystem'=>'api.php',
		'Session'=>'api.php'
];

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

array_map("autoload",$classmap);

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

相關文章
相關標籤/搜索