咨询composer why输出含义及sentry/sentry的依赖规则问题
Composer
why命令输出解释及相关问题解答 一、命令输出含义
先看执行的命令及输出:
λ composer why php-http/client-common sentry/sentry 3.17.0 requires php-http/client-common (^1.5|^2.0) sentry/sentry 3.17.0 conflicts php-http/client-common (1.8.0)
composer why是Composer的查询命令,用来查看指定依赖包被项目中哪些包关联,以及具体的约束规则- 第一行输出说明:
sentry/sentry3.17.0版本必须依赖php-http/client-common的1.5.x及以上(低于2.0)版本,或者2.0.x及以上版本 - 第二行输出说明:
sentry/sentry3.17.0版本禁止使用php-http/client-common的1.8.0这个特定版本
二、同一依赖同时存在要求与冲突的原因
这是因为php-http/client-common 1.8.0版本存在特定的bug、兼容性问题,或者与sentry/sentry 3.17.0的代码逻辑存在冲突。
开发团队维护sentry/sentry时,先通过requires声明了兼容的大版本范围,保证大部分正常版本都能使用;但发现1.8.0版本有不可用的问题,于是额外添加conflicts规则排除这个单一版本——这样既保留了对多数兼容版本的支持,又规避了特定版本的风险。
内容的提问来源于stack exchange,提问作者realtebo
相关产品推荐
相关产品推荐

