PHP composer更新指定依赖包过程详细讲解
作者:胡西风_foxww 发布时间:2023-05-27 18:05:34
composer更新依赖包
compoesr
的 require/update
都可以更新指定的依赖包 (升级 / 降级)。
require 更为灵活些,未安装则进行安装,已安装则根据传入的版本号进行升级或降级。
update 则无法在命令行传入新的版本号,需要先手动在 composer.json
中指定新的版本号,然后执行更新命令。
composer` `require` `google/protobuf --ignore-platform-reqs -vvv
require命令示例
// 安装包
composer require hashids/hashids:2.0.0// 已安装 升级
composer require hashids/hashids:3.0.0// 已安装 降级
composer require hashids/hashids:2.0.4
update命令示例
update 命令无法在命令行中指定包版本号,需要手动修改 composer.json 文件
// 安装包
composer require hashids/hashids:2.0.0
错误用法
composer update hashids/hashids:3.0.0
正确用法示例
#升级到3.0.0
vim composer.json
"require": {
"hashids/hashids":"3.0.0"
},
:wq
composer update hashids/hashids
#降级到2.0.4
vim composer.json
"require": {
"hashids/hashids":"2.0.4"
},
:wq
composer update hashids/hashids
同时,如果我们编辑更新了多个包的版本号,则无法使用
composer update package1
composer update package2
composer update package3
的方式去依次的更新,因为 composer 会校验配置文件的完整性 json vs lock,你指定要我更新 A,但你 B 的 version 在 json 和 lock 中不一致,你却不要我更新它,这是有问题的。
这时只能使用 composer update 全局更新依赖,注意是全局包的更新操作,一些你未更改但使用了版本号范围的包也有可能被更新升级,请慎用!
install命令
install 可以用于项目初始化后,初次安装依赖,且会优先读取composer.lock
中的版本号,以尽可能的保证协作开发中包版本的一致性。
composer.lock 中存有的包版本记录相当于执行 composer require packageName:versionNo
,不存有的相当于执行composer update packageName with versionRule in composer.json
。
当我们协同开发时,A 在本地安装了新的依赖包,或者更新了依赖包,会写入 composer.lock/composer.json,A 上传至仓库,B 拉取至本地后,应执行一次 composer install 来同步团队的版本变更。
所以协作开发中,我们建议要同时将composer.lock/composer.json
上传至远端仓库。
版本号范围
大于/大于等于:>1.2.3 >=1.2.3
小于/小于等于:<1.2.3 <=1.2.3
确切的版本号:1.2.3
~1.2.3: 1.2.3 <= version < 1.3
^1.2.3: 1.2.3 <= version < 2.0
{
"php":` ">=7.0"`,
"ext-swoole":` ">=4.0.0",
"lib-curl":` ">=7.29.0"
}
来源:https://blog.csdn.net/my_study_everyday/article/details/129759760
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 本文实例讲述了Python随机数用法。分享给大家供大家参考,具体如下:1. random.seed(int)给随机数对象一个种子值,用于产生
- 约束的概念约束:通过限制用户操作的方式,来达到维护数据本身安全,完整性的一套方案。为什么要有约束? Mysql是一套整体的数据存储解决方案,
- 一、概述python中的逻辑操作符and 和or,也叫惰性求值,由于是惰性,只要确定了值就不往后解析代码了。二、用法说明(一)and 用法文
- vue通过路由传值在许多跳转的同时需要完成携带参数,并且在刷新的同时不丢失参数。$router:是路由操作对象,只写对象$route:路由信
- 概述laravel服务容器就像一个高度自动化的工厂,你需要的东西,定制好模型,使用特定接口来制造。因为使用了服务容器,laravel中大部分
- 解决的方法:1.在 ueditor\dialogs\internal.js 加入 document.domain = '根域名
- 本文实例讲述了python监控网站运行异常并发送邮件的方法。分享给大家供大家参考。具体如下:这是一个简单的python开发的监控程序,当指定
- 1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改&n
- 1、配置安装源# 安装dnf install http://mirrors.ustc.edu.cn/mysql-repo/mysql80-c
- 1.小猫运动游戏源码# @Author : 辣条'''多行注释本程序运行后会有一只小猫向前走安装模块 pip ins
- python实现PSO算法优化二元函数,具体代码如下所示:import numpy as np import random import m
- 登录注册系统是日常上网最普通的操作,我设了一个分类一步步完善注册登录系统,若哪里有误,请见谅。所用语言:php数据库 :mysql本次实现功
- 本文实例讲述了php将textarea数据提交到mysql出现很多空格的解决方法。分享给大家供大家参考。具体分析如下:有一些朋友可能会发现我
- 这篇文章主要介绍了如何通过python实现全排列,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 前言在进行下面的操作前,先在数据库中新建两张数据表:(以下是创建数据表的代码)create table 学生表01(姓名 nvarchar(
- 误区 #1:在服务器故障转移后,正在运行的事务继续执行 这当然是错误的! 每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有C
- 逛到一个有意思的博客在里面看到一篇关于ValueError: invalid literal for int() with base 10错
- 我在网站上设置了邮件列表功能,实现用户自动订阅和发送,但很多用户输入和提交的邮件地址格式都是无效的,无法处理。请问如何解决这一问题?&nbs
- 概述为什么使用集合运算:在集合运算中比联接查询和EXISTS/NOT EXISTS更方便。并集运算(UNION)并集:两个集合的并集是一个包
- 转PDF初始代码从文件夹中读取图片数据,然后将他们保存为PDF格式。不长,大概10行代码。from PIL import Imagefrom