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 网站上。

上一篇 下一篇
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 查看所有版本


暂无话题~