在composer中指定项目根目录之外的依赖项

时间:2017-03-14 09:12:54

标签: php git build dependencies composer-php

我有一个项目目录。这些都来自git repo。

其中一些项目是REST API,我希望将所有内容指定为项目依赖项,如下所示:

htdocs
|- restApi1
|- restApi2
    |- Vendor
        |-Guzzle
|- restApi3

因此,项目2依赖于restApi1和restApi3。 我想做的是' git checkout'如果我安装restApi2和build时缺少restApi1或restApi3。如果已经检出,则在composer installupdate后,我希望它git pull并重建为自定义命令。 由于我将这些设置作为项目,并且我可能正在对两个项目进行更改,如果我像这样依赖拉动:

htdocs
|- restApi1
|- restApi2
    |- Vendor
        |- Guzzle
        |- restApi1
        |- restApi3
|- restApi3

我必须努力将我的更改提取到他们的回购中,使用新的URL并且它会中断我的工作流程。 由于我通过localhost上的http命中项目,我可以从任何地方查看任何版本,并将所有内容视为一个大项目,其中所有代码库都出现一次。

我想知道在作曲家中是否有办法做到这一点,或者这是否是错误的方法。 我也愿意改变我的流程,如果这是一个更好的方式与上述冲突。 我考虑编写一个脚本在htdocs上运行,它可以掠过并拉动所有内容,但我认为将其他项目指定为作曲家文件中的依赖项会显示有关内部项目如何相互使用的更多信息。

1 个答案:

答案 0 :(得分:1)

您可以将restApi1和restApi3添加到composer.json:

"require" : {
    ...
    "myproject/restApi1": "dev-master",
    "myproject/restApi3": "dev-master"
},
"repositories": {
    "myproject/restApi1": {
        "url": "https://github.com/myproject/restApi1.git",
        "type":"git"
    },
    "myproject/restApi3": {
        "url": "https://github.com/myproject/restApi3.git",
        "type":"git"
    },
}

然后composer update每次都想要新的更新。

另一种选择是使用git submodules