1

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

{
    "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

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

第二个问题:更新

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

非常感谢

4

1 回答 1

3

对于你的第一个问题:

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

{
    "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更改为 ,请composer.json在 fork 中进行更改。

对于你的第二个问题:

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

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

1234abcd所需提交的哈希值在哪里。

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

于 2013-09-02T14:53:02.113 回答