【问题标题】:Load vendor dependencies with composer.json使用 composer.json 加载供应商依赖项
【发布时间】:2013-09-03 07:36:40
【问题描述】:

我最近 fork robmorgan/phinx 项目并修改了我项目中的 composer.json 文件以使用 fork 版本:

{
    "name": "...",
    "description": "...",

    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "lube8uy/phinx",
        "version": "master",
                "source": {
                    "url": "https://github.com/lube8uy/phinx.git",
                    "type": "git",
                    "reference": "master"
                }
            }
        }
    ],
    "require": {
    "php": ">=5.3.0",
        "lube8uy/phinx": "dev-master"
    }
}

第一个问题:其他供应商

现在,当我在我的项目中加载 composer.json 文件时,我正确地得到了这个分叉版本。 我不知道如何从 phinx 项目本身加载依赖项: https://github.com/lube8uy/phinx/blob/master/composer.json

如果我使用原始的 packagist 源,一切正常,并且我得到了所有依赖项,但现在我使用自己的存储库,我无法获得它们。

第二个问题:更新

如何接收我对 github 源代码所做的修改? 我做了一些修改,将它们推送到正确的分支,然后我运行 composer update 但没有任何更新......我做错了什么?

非常感谢

【问题讨论】:

  • 作曲家是否显示任何错误消息,还是只是忽略了分叉版本的依赖关系? Composer 通常会获取每个可用的composer.json,然后决定要安装给定包的哪个版本。
  • 嗨,它只是忽略它。使作曲家下载后,它只下载 lube8uy repo 中的东西。
  • +1,有趣且有用的问题!

标签: php github composer-php


【解决方案1】:

第一个问题:

尝试将其作为 VCS 存储库(版本控制系统,请参阅 composer doc on vcs repositories),如下所示:

{
    "name": "...",
    "description": "...",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/lube8uy/phinx"
        }
    ],
    "require": {
        "php": ">=5.3.0",
        "robmorgan/phinx": "dev-master"
    }
}

它现在需要包robmorgan/phinx,它位于https://github.com/lube8uy/phinx,这是所需的fork。它仍然具有原始名称 robmorgan/phinx,但在不同的位置找到。

由于其composer.json 中的包名,它仍然具有相同的名称。如果你想把名字改成lube8ye/phinx,在fork里面的composer.json里面改。

第二个问题:

当您在项目中执行php composer.phar update 时,您需要通过composer 在包中所做的更改应该会自动更新。如果这不起作用,请尝试通过在您的 require 部分中的 dev-master 之后添加提交哈希来强制作曲家要求特定提交,如下所示:

    "require": {
        "robmorgan/phinx": "dev-master#1234abcd"
    }

1234abcd 是所需提交的哈希值。

另外:尝试通过删除文件夹内容来清除作曲家的缓存以避免加载缓存版本(请参阅composer doc on COMPOSER_CACHE_DIR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 2019-03-07
    • 2019-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多