无法升级至Laravel 8:依赖冲突问题求助
解决Laravel 7升级到8时nexmo/client的依赖冲突问题
你猜的完全没错!nexmo/client ^2.0版本确实被死死锁定在Guzzle 6版本上,问题就出在它的依赖链里:它明确要求php-http/guzzle6-adapter ^2.0,这个适配器是专门为Guzzle 6打造的,和Guzzle 7完全不兼容。而Laravel 8升级后,对guzzlehttp/guzzle的要求是^7.0.1,这俩版本要求撞在一起,自然就出现冲突了。
给你两个可行的解决办法:
优先选择:升级nexmo/client到兼容Guzzle 7的版本
nexmo/client从3.0版本开始就支持Guzzle 7了,你只需要把composer.json里的nexmo/client版本改成^3.0,然后跑一下这个命令:composer update nexmo/client --with-all-dependencies这样就能让nexmo/client适配Laravel 8的Guzzle要求,也是最稳妥的做法,毕竟第三方包升级到适配新版本框架的版本是常规操作。
临时方案(不推荐,有潜在风险)
如果暂时不想升级nexmo/client,你可以尝试在composer.json里放宽依赖约束,但这种操作可能会埋下兼容性隐患,比如某些功能异常。具体可以这么改:"require": { "nexmo/client": "^2.0", "guzzlehttp/guzzle": "^6.5 || ^7.0" }然后运行
composer update,不过还是建议优先升级nexmo/client版本。
内容的提问来源于stack exchange,提问作者Mick
相关产品推荐
相关产品推荐

