代码之家  ›  专栏  ›  技术社区  ›  Julien Bourdeau

php composer需要依赖if*条件*

  •  1
  • Julien Bourdeau  · 技术社区  · 7 年前

    有什么方法需要依赖于 composer.json 只有满足了条件?

    通常,如果php版本足够高,我会使用guzzle 6,否则什么也不做。如果你不酗酒,图书馆会处理退路的。

    我知道你可以用 "some/dependency": "^1.0 || ^2.0" ,它将选择符合您其他要求的最新专业。我要找的是:

    "some/dependency": "nothing || ^2.0"
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   rob006    7 年前

    不能直接作为 composer.json 是的。但是,您可以通过创建桥包来实现这一点,桥包可以为不同版本定义不同的依赖项,这些版本可能有不同的需求。

    所以你可以创造 me/guzzle-wrapper 包装和:

    1. 标签 1.0.0 版本 作曲家.json 以下内容:

      {
          "name": "me/guzzle-wrapper",
          "require": {
              "php": "<5.5",
          }
      }
      
    2. 标签 2.0.0 版本 作曲家.json :

      {
          "name": "me/guzzle-wrapper",
          "require": {
              "php": ">=5.5",
              "guzzlehttp/guzzle": "^6.3"
          }
      }
      

    所以要求 guzzlehttp/guzzle 直接地,您可以使用这个元包-这取决于您的php版本编写器将安装 2.0.0版 这就需要狂饮,或者 1.0.0 不需要任何东西。

    但是如果你的软件包可以不费吹灰之力地工作,也许你应该把这个要求移到 suggest 部门?