如果我可以在composer.json中指定私有回购,我为什么要使用Satis?

时间:2015-01-23 16:06:31

标签: composer-php satis

我正在开发一些我经常在多个项目中使用的库,我使用GIT对它们进行版本化。

现在,我想通过Composer使用它们。

我的问题出现了:Composer使我能够指定一些私有存储库,我可以从中提取源代码以包含在我的应用程序中(https://getcomposer.org/doc/05-repositories.md#using-private-repositories)。

然后,我找到了Satis:https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md#satis

现在,我不太了解两者之间的差异以及使用Satis可以获得哪些优势,而不是通过Composer功能使用私有存储库。

我真的需要设置一个Setis服务器吗?它给我带来了哪些好处?

1 个答案:

答案 0 :(得分:3)

默认情况下,Composer会在composer.json上查找名为Packagist的特殊公共包存储库中的依赖项。 Packagist存储每个添加的存储库位置及其依赖项。 当您运行composer install时,Composer会向Packagist询问相关性及其位置,然后下载它们。

但是当你有一个非常大的项目有很多依赖项或者(并且)你经常构建你的项目时,你很快就会遇到两个问题。

第一个和主要问题是速度。如果您没有广泛的互联网连接,团队所有成员同时构建您的应用程序可以充足的时间

第二个问题是,Github等公共存储库托管服务通常会为{api}请求limits

您可以在本地基础架构中解决这两个问题setting up PackagistSatis的镜像。在这种情况下,Composer不会转到Packagist了解您的相关性,而是向您的Satis服务器询问它们。

Packagist是一项公共服务,但有时您希望将另一个私有存储库添加为依赖项。您可以向composer.json添加一个特殊条目,以便Composer从其他位置下载此包。 如果您愿意,还可以使Satis镜像您的私有存储库,就像使用公共存储库一样。