Laravel是怎么实现autoload的?

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

时间: 2025-01-13 13:12:27

Laravel是怎么实现autoload的?的相关文章

laravel安装笔记 (转)

一.安装composer 安装之前将\php\php.ini文件中的php_openssl.dll扩展库开启,否则composer在安装过程中会出现错误提示. (我在安装过程中发现apache目录下的php.ini最好也开启php_openssl.dll,就是讲前面的‘:’号去掉) composer下载地址:https://getcomposer.org/ windows下载地址:https://getcomposer.org/Composer-Setup.exe 二.下载Laravel最新框架

laravel常见异常解决

requested URL not found http://stackoverflow.com/questions/21458080/the-requested-url-projectname-users-was-not-found-on-this-server-laravel DocumentRoot "/var/www/html/laravel/public/" <Directory "/var/www/html/laravel/public">

composer更新不成功,启用国内镜像网站的配置更改办法

用法: 有两种方式启用本镜像服务: 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见“例1” 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置).见“例2” 为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下: { "repositories": [ {"type": "composer", "url":

[转]Composer 中国镜像

用法: 有两种方式启用本镜像服务: 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见“例1” 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置).见“例2” 为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下: { "repositories": [ {"type": "composer", "url":

Composer 中国镜像

用法: 有两种方式启用本镜像服务: 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见“例1” 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置).见“例2” 为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下: { "repositories": [ {"type": "composer", "url":

解决Composer国内速度慢的办法

原文地址:http://muxucao.cn/news-132.html 用法: 有两种方式启用本镜像服务: 1 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见“例1” 2 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置).见“例2” 为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下 1 2 3 4 5 {     "repositories": [     

composer启用国内镜像网站的配置更改办法

用法: 有两种方式启用本镜像服务: 将以下配置信息添加到 Composer 的配置文件 config.json 中(系统全局配置).见"例1" 将以下配置信息添加到你的项目的 composer.json 文件中(针对单个项目配置).见"例2" 为了避免安装包的时候都要执行两次查询,切记要添加禁用 packagist 的设置,如下: { "repositories": [ {"type": "composer"

Laravel访问出错错误信息:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or dire

错误信息:`Warning: require(/http/www.mywakavLee.cn/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /http/www.mywakavLee.cn/bootstrap/autoload.php on line 17 Fatal error: require(): Failed opening required '/http/www

Laravel的Warning: require..../vendor/autoload.php错误的解决办法

Warning: require(D:\www\laravel-canvas\bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in D:\www\laravel-canvas\bootstrap\autoload.php on line 17 Fatal error: require(): Failed opening required 'D:\www\laravel-canv