使用composer.json加载供应商依赖项

时间:2013-08-30 14:18:55

标签: php github composer-php

我最近分叉了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

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

第二个问题:更新

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

非常感谢

1 个答案:

答案 0 :(得分:3)

关于您的第一个问题:

尝试将其作为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,这是所需的分叉。它仍然具有原始名称robmorgan/phinx,但位于不同的位置。

由于其composer.json中的包名称,它仍然具有相同的名称。如果您要将名称更改为lube8ye/phinx,请在前缀中composer.json更改名称。

关于第二个问题:

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

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

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

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