php composer关于版本冲突的问题解决

443 阅读1分钟
  1. php项目经常用到composer来管理依赖关系,有时候会遇到如下的错误:
- xxx[0.0.1, ..., v0.0.3] require bbb 0.0.6 -> satisfiable by bbb[0.0.6]. 
- yyy v0.0.15 requires bbb ^0.0.7 -> satisfiable by bbb[0.0.7]. 
- zzz v1.0.1 requires xxx 0.* -> satisfiable by xxx[0.0.1, v0.0.2, v0.0.3].

zzz依赖xxx,xxx依赖0.0.6版本的bbb, yyy依赖0.0.7版本的bbb,这时候会有版本冲突。zzz为根项目,此时可以在zzz的composer.json中

"bbb": "^0.0.6" 

这样定义一个固定的版本,可以解决A依赖B和D,B和D共同依赖不同版本的C,在A的composer.json中给出一个固定版本的C可以解决版本冲突问题。

  1. 如果公司有自己的packagist库,有时候在packagist库中找不到依赖,此时可以直接从git仓库拉取,
    "repositories": {
        "xxx": {
            "name": "xxx",
            "type": "vcs",
            "url": ""
        },
        "zzz": {
            "name": "zzz",
            "type": "vcs",
            "url": ""
        },