【问题标题】:Composer: how to install `dev` packages in Symfony 2.3?Composer:如何在 Symfony 2.3 中安装 `dev` 包?
【发布时间】:2013-08-15 09:27:48
【问题描述】:

尝试在 Symfony 2.3 项目中安装 KnpGaufretteBundle,但没有运气。问题是:

  1. minimum-stability:stable(在composer.json);
  2. 我需要的捆绑包仍然是dev-master 版本。

阅读 Symfony 文档中的 this 令人沮丧:

如果你知道一个很酷的包或 PHP 库仍然需要开发人员 最低稳定性,与首席开发人员交谈并说服他标记 一个稳定的版本。

我不会将整个项目的最低稳定性更改为dev,因为它肯定会造成巨大混乱 - 我的意思是,可以我不是并排使用稳定包和开发包吗?

也许我错过了一些关于作曲家的东西吗?


编辑(2013 年 8 月 14 日)

根据下面Sven 的回答,我已经编辑了我的composer.json(你可以找到它here)并且它开始工作了。无论如何,这是一个部分解决方案,因为内联别名不适用于依赖项 - 所以在我的情况下,我必须首先指定“不稳定”包的所有依赖项,然后一个一个地给它们起别名。

【问题讨论】:

    标签: composer-php symfony-2.3


    【解决方案1】:

    只需使用

    "knplabs/knp-gaufrette-bundle": "dev-master@dev" 
    

    如果您需要最新的开发版本

    您还可以将 minimum-stability 更改为 dev 并添加 "prefer-stable": true ,如下所示:

    "minimum-stability": "dev",
    "prefer-stable": true,
    

    那么 composer 总是会尝试找到一个稳定的版本,如果没有找到安装 dev,所以你的 symfony 包仍然是稳定的。 但是在您的情况下,composer 将安装 v0.1.4(knplabs/knp-gaufrette-bundle 的最新稳定版),因此无论如何您都需要 dev-master@dev。 prefer-stable 只是对您的提示。

    【讨论】:

      【解决方案2】:

      看看别名:http://getcomposer.org/doc/articles/aliases.md

      它们应该允许您以该分支应该是版本标记的逻辑扩展的方式来处理分支(根据定义,该分支始终处于开发中,因为您只能访问最新的提交)。

      对于尚未标记的项目,适当的假定标记版本应该是“0.0.0”。

      您应该尝试使用捆绑包的内联别名。

      【讨论】:

      • 编辑了我的问题 - 谢谢你的信息。无论如何,将版本字符串(参见要点)从 dev-master 更改为 0.0.0(或 2.*,根据 extra 部分)并没有改变任何内容
      • 愚蠢的我:我更新了错误的 composer.json。事实上,这个捆绑包上的dev-master as 0.0.0 及其依赖项确实解决了这个问题。不过,我接受了另一个答案,因为它更灵活(无需指定别名依赖项)。还是非常感谢!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-20
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多