Laravel实现autoload方法详解


Posted in PHP onMay 07, 2017

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

Laravel实现autoload方法详解

PHP 相关文章推荐
php中判断一个字符串包含另一个字符串的方法
Mar 19 PHP
php读取30天之内的根据算法排序的代码
Apr 06 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
ajax php 实现写入数据库
Sep 02 PHP
paypal即时到账php实现代码
Nov 28 PHP
php 数组使用详解 推荐
Jun 02 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
YII Framework教程之异常处理详解
Mar 14 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
Dec 03 PHP
PHP中include和require的区别实例分析
May 07 #PHP
自制PHP框架之设计模式
May 07 #PHP
自制PHP框架之模型与数据库
May 07 #PHP
自制PHP框架之路由与控制器
May 07 #PHP
PHP-CGI远程代码执行漏洞分析与防范
May 07 #PHP
PHP关键特性之命名空间实例详解
May 06 #PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 #PHP
You might like
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
php版微信公众平台之微信网页登陆授权示例
2016/09/23 PHP
ExtJs默认的字体大小改变的几种方法(自己整理)
2013/04/18 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
详解angular用$sce服务来过滤HTML标签
2017/04/11 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
JS+canvas画布实现炫酷的旋转星空效果示例
2019/02/13 Javascript
Vue使用watch监听一个对象中的属性的实现方法
2019/05/10 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
Python3写入文件常用方法实例分析
2015/05/22 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
python实现图片转字符小工具
2019/04/30 Python
python的pstuil模块使用方法总结
2019/07/26 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
如何让pre和textarea等HTML元素去掉滚动条自动换行自适应文本内容高度
2019/08/01 HTML / CSS
澳大利亚票务和娱乐市场领导者:Ticketmaster
2017/03/03 全球购物
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
创立科技Java面试题
2015/11/29 面试题
职工运动会邀请函
2014/02/02 职场文书
公司担保书范文
2014/05/21 职场文书
培训科主任岗位职责
2014/08/08 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
员工年终考核评语
2014/12/31 职场文书
文艺晚会开场白
2015/05/29 职场文书
告知书格式
2015/07/01 职场文书
python 如何执行控制台命令与操作剪切板
2021/05/20 Python
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python
vue实现拖拽交换位置
2022/04/07 Vue.js