Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 作曲家赢得';在私有存储库中加载私有存储库?_Git_Composer Php - Fatal编程技术网

Git 作曲家赢得';在私有存储库中加载私有存储库?

Git 作曲家赢得';在私有存储库中加载私有存储库?,git,composer-php,Git,Composer Php,因此,我试图利用composer软件包的强大功能,使我的应用程序更加模块化。因此,我的主要应用程序现在依赖于一个私有存储库,我正在这样做: "repositories": [ { "type": "vcs", "url": "../tenant-package.git" } ], "require": { "archiveonline/tenant-package": "dev-master#a9ee4ec" }, 这很好,它在本地拉入租

因此,我试图利用composer软件包的强大功能,使我的应用程序更加模块化。因此,我的主要应用程序现在依赖于一个私有存储库,我正在这样做:

"repositories": [
    {
        "type": "vcs",
        "url": "../tenant-package.git"
    }
],
"require": {
    "archiveonline/tenant-package": "dev-master#a9ee4ec"
},
这很好,它在本地拉入
租户包
,如果我将url更新为bitbucket url,它仍然可以正常工作。现在,
tenant包
有另一个名为
repository包
的私有依赖项,我在
tenant包
中提取它,如下所示:

"repositories": [
    {
        "type": "vcs",
        "url": "https://rohan0793@bitbucket.org/archiveonline/repository-package.git"
    }
],
"require": {
    "archiveonline/repository-package": "dev-master#e4ce518"
},

现在,当我在
租户包
中执行
composer更新
时,我可以查看供应商目录以查找
archiveonline/repository包
。同样,当我在主应用程序中执行
composer更新时
,我可以在供应商目录中找到
archiveonline/tenant包
,但找不到
archiveonline/repository包
。我做错了什么?我错过什么了吗?这不是解决问题的方法吗?

在决定哪些软件包可用之前,Composer必须了解所有可能的存储库。默认情况下,只有packagist.org在列表中,并且知道所有公开发布的包

如果要添加单个存储库,必须将它们全部添加到根包中。您不能间接使用根包中所需的包中提到的存储库

Composer将扫描所有存储库以获取任何包含的包的信息,但如果它允许间接的包链接,则如果包指向一长串其他包(如果包含在您使用的公共包中,则这是一种非常恶劣的拒绝服务),则此搜索可能永远不会结束,或者它将递归地继续查找新的存储库,并与其他存储库建立新的链接,等等

设计决定只使用根包
composer.json
的存储库知识,因此必须提及所有Git回购

正如你所能想象的,这是乏味的,所以有一些帮助:Satis。您可以将其配置为了解您的所有存储库,它将收集在一个位置找到的所有元数据。运行它会创建一些必须通过HTTP或HTTPS提供服务的静态文件,您可以在所有
composer.json
文件中使用
“type”:“composer”,“url”:http://example.com/your/satis/path“


无论何时添加新包或新包的新版本,在Satis更新元数据文件后,Composer都会知道这些文件,并允许在最新(无冲突)版本的任何位置添加任何包。

我认为这是有意义的。谢谢