laravel第一课-基础知识-composer

未匹配的标注

laravel第一课-基础知识-composer

​本文视频地址

本文视频地址

或者在哔哩哔哩搜索,汪春波

laravel第一课-基础知识-composer

学习文章链接:xueyuanjun.com/post/4506

记录问题

1、什么是组件

组件是一组打包的代码,是一系列相关的类、接口和Trait,用于帮助我们解决PHP应用中某个具体问题。例如第三方支付,第三方登陆组件。yansongda支付。

2、Composer 是啥

composer 就是一个包管理器。
Packagist是查找PHP组件的社区,Composer则是安装PHP组件的工具。Composer是PHP的依赖管理器,运行在命令行中,你告诉Composer需要哪些组件,Composer会下载并把这些组件自动加载到你的项目中,就这么简单

3、 composer 自动加载是如何实现的?(重要)

Composer创建的自动加载器其实就是个名为autoload.php的文件,保存在vendor目录中,Composer下载各个PHP组件时,会检查每个组件的composer.json文件,确定如何加载该组件,得到这个信息后,Composer会在本地为该组件创建一个符合PSR标准的自动加载器。这样我们就可以实例化项目中的任何PHP组件,这些组件按需自动加载。

那么底层代码是如何实现的呢?

4、 composer 底层是如何autoload的?(重点背下来)

先看这个 Composer 实现自动加载原理-新手也能看懂
再看这里即可完全整明白了。深入学习 Composer 自动加载(autoload)机制

主要内容为:(背下来

autoload.php 的 autoload_real.php 这里
流程为

  1. 首先在 autoload.php 中调用 ComposerAutoloaderInit1215780529014c2b50a6fca7ce889273::getLoader () 方法,2. getLoader () 首先判断当前𝑙𝑜𝑎𝑑𝑒𝑟是不是𝑛𝑢𝑙𝑙,如果不为𝑛𝑢𝑙𝑙就直接返回,否则就初始化一个𝐶𝑙𝑎𝑠𝑠𝐿𝑜𝑎𝑑𝑒𝑟类给赋值给 loader 是不是 null,如果不为 null 就直接返回,否则就初始化一个 ClassLoader 类给赋值给 loader
  2. 接着将 autoload_namespaces.php、autoload_psr4.php、autoload_classmap.php 文件中的内容加入到 $loader 中对应的数组中,然后给注册 loadClass 函数,将 autoload_files.php 中的所有路径所示的文件都包含进来
  3. 当在 new 一个类的时候如果没有找到相关的类就会触发这个 loadClass 函数
  4. 在 loadClass () 又调用了 findFile () 去查找相应的文件,找到相应文件后就会返回该文件,
  5. 然后 loadClass 调用 includeFile () 方法将该文件 include 进去,否则 findFile 返回 false,这样就完成了自动加载

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~