用了一阵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里