Laravel实现autoload方法详解

yipeiwu_com6年前PHP代码库

用了一阵Laravel后发现很少有include和require,觉得有点奇怪,思考Laravel是怎么完成文件导入的。

其实Laravel依旧还是用include或者require的,只是都写在一个函数里了。

就像这样:

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

一般每次导入的PHP文件不只一两个,会有很多,所以要定义一个数组来存储“类和PHP文件的映射关系”,就像这样:

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

然后,对数组进行遍历,不要再写for循环了,用一个优雅的函数就可以解决。

array_map("autoload",$classmap);

我们来看看真正的Laravel是怎么定义这个数组的,映射文件在\vendor\composer的autoload_classmap.php里

相关文章

PHP删除非空目录的函数代码小结

有了这个小程序,PHPer就不用手动进行删除计算机上的目录文件了,在练习PHP目录文件操作时就可以用这个函数,在这个基础上还可以增加浏览文件夹目录,然后进行删除。代码一:复制代码 代码如...

php中in_array函数用法探究

本文较为深入的探究了php中in_array函数用法。分享给大家供大家参考。具体如下: 今天突然想到php中的in_array函数有个其怪的用法,下面我们来看看这个用法,有需要的朋友简单...

PHP用SAX解析XML的实现代码与问题分析

复制代码 代码如下: <?php $g_books = array(); $g_elem = null; function startElement( $parser, $name...

PHP中explode函数和split函数的区别小结

一、前言 之所以做这个,是因为这两个函数的作用很像,都是把字符串转换成数组。 二、explode 从下面的例子可以看出,生成的数组是有对应的顺序的。 $pizza = "piece1...

PHP封装的HttpClient类用法实例

本文实例讲述了PHP封装的HttpClient类。分享给大家供大家参考。具体分析如下: 这是一段php封装的HttpClient类,可实现GET POST Cookie Session等...