老莫的笔记本  
  
查看: 683|回复: 0

composer依赖包不兼容,[论composer 的 replace属性怎么.....

[复制链接]

662

主题

878

帖子

5141

积分

超级版主

Rank: 8Rank: 8

积分
5141
发表于 2021-8-8 10:49:16 | 显示全部楼层 |阅读模式
问题表现:那天 我装了 easyWechat 在laravel5+ 中, 然后需要发送腾讯云的短信, 然后问题来了, composer 腾讯云软件失败。 我懵逼了!查看报错:
https://learnku.com/laravel/t/59161
https://learnku.com/laravel/t/55129
[为什么贴这个网页呢, 因为这哥们遇到问题跟我一样。虽然他们没解决 -]



问题本质:  照着看,其实就是告诉我 某个已经安装的依赖包 含有子包 guzzlehttp/guzzle   这个已有版本是 7+ ,而我要安装的 腾讯云SDK 也含有子包 guzzlehttp/guzzle 6.3.0  这两个有冲突, 所以安装不上。
问题本质透析: 也就是解决 composr 依赖包版本冲突问题。

错误的步骤, 我就不累述了[那是一鼻子的辛酸泪啊,整整一个周六白天 我都在思考问题,怀疑人生,百度100个里 没有一个是真的, 还有建议创建第三方包,对两个版本进行管理, 神经病我要会这么牛逼的技术,我会卡这么小的问题嘛]
说正确的: 偶然见 看到一个网页

   https://www.cnblogs.com/caibaotimes/p/14272177.html  【 不用点,说实话 ,这个网站就三行字,也就是提醒我 利用 composer 的 replace 属性来解决问题 】
   然后我看了看,人家的 composer 的  replace 怎么写的【已经安装了一大包的包 找几个看看呗。】
  最后的解决方式:
第一步: 先把 需要兼容的 版本写出来加入 composer 的 replace [ 没有就写一个 ] 我这里是腾讯云问题,这么写
  1. "replace": {
  2.         "guzzlehttp/guzzle":"^6.2 ||6.3.0 || ^7.0.1",
  3.         "guzzlehttp/psr7":"^1.4 || ^1.7 || ^2.0"
  4.     },   
复制代码
第二步: composer update  【这步干啥用的, 我哪知道 ,我瞎看的,反正对项目一毛钱的影响都没有 ,照着解说做 死不了】
第三步: 安装需要安装的 腾讯云 sdk       composer require tencentcloud/tencentcloud-sdk-php   
【注: 如果安装的时候 把之前的版本删了, 那说明你没配置好 , 一定要先看看 本地是啥版本 。然后 写进去】




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表