PHP编写器需要独占依赖项

时间:2017-02-01 07:43:35

标签: php composer-php

我想知道如何告诉作曲家我需要ext-imagickext-gmagick。但不是两个!

根据建议,我添加了一些虚拟包:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "virtual/imagine-gd",
            "version": "1.0.0",
            "require": {
                "ext-gd": "*"
            },
            "provide": {
                "virtual/imagine-impl": "1.0.0"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "virtual/imagine-gmagick",
            "version": "1.0.0",
            "require": {
                "ext-gmagick": "*"
            },
            "provide": {
                "virtual/imagine-impl": "1.0.0"
            }
        }
    },
    {
        "type": "package",
        "package": {
            "name": "virtual/imagine-imagick",
            "version": "1.0.0",
            "require": {
                "ext-imagick": "*"
            },
            "provide": {
                "virtual/imagine-impl": "1.0.0"
            }
        }
    }
]

并添加了要求:

"virtual/imagine-impl": "^1.0"

但是去了错误:

The requested package virtual/imagine-impl could not be found in any version, there may be a typo in the package name.

1 个答案:

答案 0 :(得分:2)

希望我可以通过采用可变的依赖逻辑并隔离到允许并需要虚拟包的小包中来帮助您。

`{
  "name": "my/gd-impl",
  "require": {
    "ext-gd": "*"
  },
  "provide": {
    "my/image-processor": "1.0.0"
  }
}


{
  "name": "my/imagick-impl",
  "require": {
    "ext-imagick": "*"
  },
  "provide": {
    "my/image-processor": "1.0.0"
  }
}


{
  "name": "my/gmagick-impl",
  "require": {
    "ext-gmagick": "*"
  },
  "provide": {
    "my/image-processor": "1.0.0"
  }
}


{
  "name": "my/awesome-project",
  "require": {
    "my/image-processor": "^1.0.0"
  }
}`