我正在开发一些我经常在多个项目中使用的库,我使用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服务器吗?它给我带来了哪些好处?
答案 0 :(得分:3)
默认情况下,Composer
会在composer.json
上查找名为Packagist的特殊公共包存储库中的依赖项。
Packagist
存储每个添加的存储库位置及其依赖项。
当您运行composer install
时,Composer
会向Packagist
询问相关性及其位置,然后下载它们。
但是当你有一个非常大的项目有很多依赖项或者(并且)你经常构建你的项目时,你很快就会遇到两个问题。
第一个和主要问题是速度。如果您没有广泛的互联网连接,团队所有成员同时构建您的应用程序可以充足的时间。
第二个问题是,Github
等公共存储库托管服务通常会为{api}请求limits。
您可以在本地基础架构中解决这两个问题setting up Packagist
和Satis
的镜像。在这种情况下,Composer
不会转到Packagist
了解您的相关性,而是向您的Satis
服务器询问它们。
Packagist
是一项公共服务,但有时您希望将另一个私有存储库添加为依赖项。您可以向composer.json
添加一个特殊条目,以便Composer
从其他位置下载此包。
如果您愿意,还可以使Satis
镜像您的私有存储库,就像使用公共存储库一样。