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实现统计代码行数小工具

本文实例为大家分享了PHP实现统计代码行数小工具,供大家参考,具体内容如下 为了方面统计编程代码行数,做了一个小工具。 自动统计指定目录以及目录下的所有文件。 <?ph...

PHP实现的DES加密解密类定义与用法示例

本文实例讲述了PHP实现的DES加密解密类定义与用法。分享给大家供大家参考,具体如下: 今天写App接口的时候需要传递加密数据给APP端,于是就写了下面的DES加密类,亲测正确代码如下...

mac系统下为 php 添加 pcntl 扩展

前言: pcntl 介绍 pcntl扩展可以支持 PHP 的多线程操作。(非Unix类系统不支持此模块) phpize 介绍 phpize 可以用来给 PHP 动态的添加扩展。比如编译...

PHP操作文件的一些基本函数使用示例

PHP操作文件的一些基本函数使用示例

在对文件进行操作时,不仅可以对文件中的数据进行操作,还可以对文件本身进行操作。例如复制文件、删除文件、截取文件及为文件重命名等操作。在PHP中已经提供了这些文件处理方式的标准函数,使用也...

用sql命令修改数据表中的一个字段为非空(not null)的语句

用sql命令修改数据表中的一个字段为非空(not null)的语句

ALTER TABLE table1 ALTER COLUMN [name] varchar(60) NULL; table1 表名 name 字段名 为什么加上[],因为na...