composer.json和composer.lock区别

前言:

开发中很多程序员只知道项目初始化的时候composer install一下,实际并不知道composer install走了什么。更分不清compose install和composer update的区别是什么,从compose install字面意思看到时安装,实则并不知道从哪来安装,从compose update字面意思看到时更新,实则并不知道从哪来更新所以今天主要讲下composer.json和composer.lock的区别

为了使团队中每个人引入的第三方包尽量保持一致,所有有了composer.lock的文件来锁定。当项目初始化的时候,项目中只用compose.json文件,当执行compose install的时候compose会优先寻找compose.lock文件,当发现compose.lock文件不存在的时候会去寻找compose.json.会根据composer.json中的包以及包版本号去安装(注意:这里的安装如果在没有指定具体的版本号时就会安装最新的版本)

composer install讲解:
composer.json中的版本符号
例如:
在这里插入图片描述
^ 符号 :限制大版本,也就是^2.0.22,也就是不能超过2,最大只能为2.9.9
~ 符号 :限制小版本,也就是~2.0.22,也就是不能超过0,最大只能为2.0.9

composer update讲解:

实际当执行composer update的时候,composer会优先从composer.json的文件中去寻找第三方包以及包的版本(注意:主要composer.json文件中存在一些没有具体的版本号,如上图) 所以compose就会把当前第三方包更新为最新的,这样就会存在一个问题,那就是导致你本地与项目中的插件版本不一致导致导致出错。

所以总结出来一个结论:
composer install 执行的是composer.lock,当composer.lock不存在就会从composer.json去寻找安装。
composer update执行的是composer.json (注意这里会把项目中没有指定具体版本号的包更新为最新的)
所以平时谨慎执行compose update

项目中的第三方包流程:

  1. 初始化项目:执行 composer install ,生成composer.json和composer.lock
  2. 上传composer.json和composer.lock到git仓库,方便开发人员来取到和线上一样的composer.lock (注意:上面讲了 composer install是从composer.lock获取包|版本,为什么还要上传composer.json,当然也可以不上传,但是需要开发人员在本地建立一个空的compose.json文件,因为compose要求必须要有composer.json和composer.lock 两个文件)
  3. 当开发人员拉取到compose.lock文件后,执行compose install即可安装与线上环境一模一样的第三方包。
  4. 完毕。
  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用PHPStorm创建项目时,可以选择创建一个Composer项目。这样,PHPStorm会自动帮你初始化composer.json文件,省去了手动创建的步骤。你只需要按照提示输入一些信息来描述你的项目,然后PHPStorm会自动创建composer.json文件。 当然,你也可以在项目根目录下手动创建composer.json文件。只需在命令行中运行php composer.phar init命令,然后按照提示输入相关信息即可。 在初始化composer.json文件后,你可以使用php composer.phar install命令来安装依赖包。这将会读取composer.json文件中的内容,并解析出依赖关系,然后安装依赖包到vendor目录下。如果vendor目录不存在,Composer会自动创建它。 总结来说,使用PHPStorm的创建Composer项目功能可以快速初始化composer.json文件,而手动创建则需要在命令行中输入相关命令进行初始化。无论哪种方式,最终目的都是为了管理项目的依赖关系以及安装所需的依赖包。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [使用PHPStorm+Composer快速初始化项目](https://blog.csdn.net/resilient/article/details/78696459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值