热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Composer实现项目的自动加载(Composer管理依赖包)

202010126df4eeComposer管理依赖包,实现自动加载composer通过require、remove命令对项目进行依赖包的添加与删除。composer通过对项目根目

/2020/10/126df4ee

Composer管理依赖包,实现自动加载

composer通过require、remove命令对项目进行依赖包的添加与删除。

composer通过对项目根目录下的composer.json文件的配置,可以实现PSR-4自动加载的规范。

composer.json架构详解,此处有详细介绍如何配置该文件。

通过对TP5.1的源码进行学习,TP5的自动加载主要是根据composer install命令执行后composer在vendor目录下生产的ClassLoader类进行重写。Composer自动加载机制,是建立命名空间与文件相对于项目根目录路径的映射关系,再通过spl_autoload_register方法注册系统的自动加载,在自动加载 逻辑当中,最核心的是怎么样根据上面生成的路径,查找到相应的文件,并include(包含)进来。

composer自动加载详细流程:

● 配置根目录下的composer.json文件中的autoload的自动加载映射规则。

● 调用composer install/update 命令,生成vendor/composer文件夹以及相关的文件。其中命名空间与文件路径的映射保存在autoload_psr4.php文件中。同时生成ClassLoader.php文件,该文件是自动加载的工具类,通过解析命名空间,查找到相关文件,以便include进来。

● 在入口文件处include vendor文件夹下面的autoload.php文件。若要想更改自动加载相关的官方,自定义一些操作,可以根据composer生成的ClassLoader文件自行编写一个加载器工具类,前提是理解composer的自动加载原理,以及PSR4自动加载规范。具体的可以参考tp5里面的Loader类的实现。

更多composer相关技术文章,请访问composer栏目:https://www.php.cn/tool/composer/

以上就是Composer实现项目的自动加载(Composer管理依赖包)的详细内容,更多请关注就爱读建站教程其它相关文章!



推荐阅读
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
author-avatar
天蝎樱花西街1992
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有