如果我可以在composer.json中指定私有存储库,为什么我应该使用Satis?

Aer*_*dir 4 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 服务器吗?它给我带来了哪些好处?

cha*_*pay 7

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

但是,当您有一个非常大的项目并且有很多依赖项或者(并且)您相当频繁地构建项目时,那么您很快就会遇到两个问题。

第一个也是主要的问题是速度。如果您没有广泛的互联网连接,那么由团队的所有成员同时构建应用程序可能会花费大量时间

第二个问题是公共存储库托管服务通常对 api 请求Github限制

您可以通过在本地基础设施中设置镜像来解决这两个问题。在这种情况下,不会去获取您的依赖项,而是向您的服务器询问它们。PackagistSatisComposerPackagistSatis

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