Composer php 如何在composer中使用与另一个包同名的包?

Composer php 如何在composer中使用与另一个包同名的包?,composer-php,Composer Php,我有一个罕见的案例,我有两个包装师在这里工作,因为我正在从事一个Drupal项目。我有和 这里的问题是它们都定义了包drupal/coder。其中一个尊重composer.json,另一个不尊重,但生成了一个。我正在准备创建一个问题,告诉他们尊重composer.json是可用的 我想使用packagist.org中的包,但由于我定义了packagist.drupal-composer.org,所以我无法使用 是否有方法从特定源中标识包,或重新定义已包含包的存储库 我试图补充 { "type

我有一个罕见的案例,我有两个包装师在这里工作,因为我正在从事一个Drupal项目。我有和

这里的问题是它们都定义了包drupal/coder。其中一个尊重composer.json,另一个不尊重,但生成了一个。我正在准备创建一个问题,告诉他们尊重composer.json是可用的

我想使用packagist.org中的包,但由于我定义了packagist.drupal-composer.org,所以我无法使用

是否有方法从特定源中标识包,或重新定义已包含包的存储库

我试图补充

{
  "type": "vcs",
  "url": "http://git.drupal.org/project/coder.git"
}
在我的存储库中没有用。执行
编写器更新;composer show
只显示packagist.drupal-composer.org中的包。此外,定义:

{
  "type": "composer",
  "url": "http://packagist.org"
}
为我提供了相同的结果


我的最后一个想法是定义一个“包”,并将它指向具有不同名称的存储库,但这似乎是一个蹩脚的解决方法,因为这样我就必须维护“版本”。

是的,这肯定是一个问题。但这里有一个解决方法,就是将packagist.drupal-composer.org上的包定义添加到composer.json

"repositories": [ { "type": "composer", "url": "https://packagist.org/p/drupal/coder.json" }, { "type": "composer", "url": "http://packagist.drupal-composer.org" } ] “存储库”:[ { “类型”:“作曲家”, “url”:”https://packagist.org/p/drupal/coder.json" }, { “类型”:“作曲家”, “url”:”http://packagist.drupal-composer.org" } ]
是的,这绝对是个问题。但这里有一个解决方法,就是将packagist.drupal-composer.org上的包定义添加到composer.json

"repositories": [ { "type": "composer", "url": "https://packagist.org/p/drupal/coder.json" }, { "type": "composer", "url": "http://packagist.drupal-composer.org" } ] “存储库”:[ { “类型”:“作曲家”, “url”:”https://packagist.org/p/drupal/coder.json" }, { “类型”:“作曲家”, “url”:”http://packagist.drupal-composer.org" } ]
  • 您将Drupal的PackageGist定义为Composer类型的repo
  • 您可以为
    drupal/coder
    repo定义一个git repo
  • 这两个定义都进入
    存储库
    部分

    现在:除了
    drupal/coder
    之外,所有包都是从中获取的

    给你:

    {
        "type": "project",
        "repositories": [
            {
                "type": "git",
                "url": "http://git.drupal.org/project/coder.git"
            },
            {
                "type": "composer",
                "url": "packagist.drupal-composer.org"
            }
        ],
        "require": {
            "drupal/coder": "8.2.1"
        }
    }
    
  • 您将Drupal的PackageGist定义为Composer类型的repo
  • 您可以为
    drupal/coder
    repo定义一个git repo
  • 这两个定义都进入
    存储库
    部分

    现在:除了
    drupal/coder
    之外,所有包都是从中获取的

    给你:

    {
        "type": "project",
        "repositories": [
            {
                "type": "git",
                "url": "http://git.drupal.org/project/coder.git"
            },
            {
                "type": "composer",
                "url": "packagist.drupal-composer.org"
            }
        ],
        "require": {
            "drupal/coder": "8.2.1"
        }
    }
    

    欢迎使用StackOverflow:)-使用+1的快速解决方案这应该包括在Composer文档中。欢迎使用StackOverflow:)-使用+1的快速解决方案这应该包括在Composer文档中。这肯定是我使用的更传统的方法。。。“类型”:“git”和“类型”:“vcs”之间有什么区别。我没有在composer.org上看到它。此外,在添加存储库条目并执行
    composer show drupal/coder 8.2.1
    之后,我仍然获得了drupal composer规范。好的,诀窍是列表中较高的存储库优先。将编辑您的答案,以便切换这两个选项。。。这将使它正确。类型“git”对于这个存储库更为具体,因为我们知道它是一个git repo。输入“vcs”将触发自动检测、回购获取、检查这是什么类型的hg、svn、git。这里定义
    git
    而不是
    vcs
    节省了一点时间。列表中较高的优先级。这让我有点吃惊,因为规则应该是任何自定义存储库都优先于PackageGist/composer存储库。但是,如果移动定义对您有效,为什么不……)这绝对是我做这件事的更传统的方式。。。“类型”:“git”和“类型”:“vcs”之间有什么区别。我没有在composer.org上看到它。此外,在添加存储库条目并执行
    composer show drupal/coder 8.2.1
    之后,我仍然获得了drupal composer规范。好的,诀窍是列表中较高的存储库优先。将编辑您的答案,以便切换这两个选项。。。这将使它正确。类型“git”对于这个存储库更为具体,因为我们知道它是一个git repo。输入“vcs”将触发自动检测、回购获取、检查这是什么类型的hg、svn、git。这里定义
    git
    而不是
    vcs
    节省了一点时间。列表中较高的优先级。这让我有点吃惊,因为规则应该是任何自定义存储库都优先于PackageGist/composer存储库。但是,如果移动定义对您有效,为什么不……)