如果我可以在composer.json中指定私有存储库,为什么还要使用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服务器吗?它给我带来什么好处?

查帕

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

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

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

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

您可以解决这两个问题在本地基础架构中设置Packagistwith的镜像Satis在这种情况下,Composer不会Packagist依赖于您,但请向您的Satis服务器询问

Packagist是一项公共服务,但有时您想添加另一个私有存储库作为依赖项。您可以在其中添加一个特殊条目,composer.jsonComposer从另一个位置下载此软件包。而且,如果您愿意,还可以Satis像对公共存储库一样镜像您的私有存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果可以在没有JOIN的多个表中进行选择,为什么还要使用JOIN?

来自分类Dev

如果使用Meteor,为什么还要使用Angular?

来自分类Dev

如果AJAX是异步的,为什么还要使用setTimout函数?

来自分类Dev

如果可以使用“等式”,为什么还要使用大小写表达式?

来自分类Dev

当您可以通过POST执行所有操作时,为什么还要使用REST API?

来自分类Dev

如果servlet可以完成相同的事情,为什么还要使用Restful Web服务?

来自分类Dev

如果包装程序可以替换实例方法,为什么还要使用types.MethodType?

来自分类Dev

即使我有足够的可用RAM,为什么还要使用swap?

来自分类Dev

如果我使用virtualenv,为什么还要使用流浪汉?

来自分类Dev

如果我们可以简单地重写超类的方法或使用抽象类,为什么还要使用接口?

来自分类Dev

如果我的应用程序从一开始就可以运行在较低级别,为什么还要使用chroot进行沙箱安全保护?

来自分类Dev

CentOS,我们可以使用哪些存储库,为什么要使用它们?

来自分类Dev

如果可以使用findViewById()直接获取视图,为什么还要使用LayoutInflater获取视图

来自分类Dev

(C ++)如果我在类中声明了某些私有内容,但是可以通过类的公共方法对其进行更改,那么为什么还要将其声明为私有呢?

来自分类Dev

如果我可以直接发布到Elasticsearch,为什么要使用Beats?

来自分类Dev

如果我可以简单地修复错误,为什么要使用try / catch?

来自分类Dev

如果我们可以使用访问器访问私有数据成员,那么为什么我们不能访问私有方法呢?

来自分类Dev

Satis Composer存储库安装

来自分类Dev

Satis私有存储库-satis.json结构

来自分类Dev

当我们可以推迟RealClass中昂贵的过程时,为什么还要使用代理模式呢?

来自分类Dev

当我可以在析构函数中销毁对象时,为什么还要使用std :: unique_ptr?

来自分类Dev

如果一个网站使用了Web服务,为什么还要使用它呢?

来自分类Dev

如果已经使用过git,为什么还要使用maven?

来自分类Dev

如果实现自己的错误检查,为什么还要使用TCP而不是UDP?

来自分类Dev

如果FOSUserBundle足以确保RESTful API的安全,为什么还要使用FOSOAuthServerBundle?

来自分类Dev

可以使用默认计时器时为什么还要使用自己的TimerQueue?

来自分类Dev

如果我可以使用 SQLite 3 在 python 中组织数据,我为什么要使用类?

来自分类Dev

当您可以在.js文件中进行设置时,为什么还要使用.env文件?

来自分类Dev

如果我仅使用JSON.Net,可以安全删除带有C#Model类中指定的后缀的字段和属性吗?

Related 相关文章

  1. 1

    如果可以在没有JOIN的多个表中进行选择,为什么还要使用JOIN?

  2. 2

    如果使用Meteor,为什么还要使用Angular?

  3. 3

    如果AJAX是异步的,为什么还要使用setTimout函数?

  4. 4

    如果可以使用“等式”,为什么还要使用大小写表达式?

  5. 5

    当您可以通过POST执行所有操作时,为什么还要使用REST API?

  6. 6

    如果servlet可以完成相同的事情,为什么还要使用Restful Web服务?

  7. 7

    如果包装程序可以替换实例方法,为什么还要使用types.MethodType?

  8. 8

    即使我有足够的可用RAM,为什么还要使用swap?

  9. 9

    如果我使用virtualenv,为什么还要使用流浪汉?

  10. 10

    如果我们可以简单地重写超类的方法或使用抽象类,为什么还要使用接口?

  11. 11

    如果我的应用程序从一开始就可以运行在较低级别,为什么还要使用chroot进行沙箱安全保护?

  12. 12

    CentOS,我们可以使用哪些存储库,为什么要使用它们?

  13. 13

    如果可以使用findViewById()直接获取视图,为什么还要使用LayoutInflater获取视图

  14. 14

    (C ++)如果我在类中声明了某些私有内容,但是可以通过类的公共方法对其进行更改,那么为什么还要将其声明为私有呢?

  15. 15

    如果我可以直接发布到Elasticsearch,为什么要使用Beats?

  16. 16

    如果我可以简单地修复错误,为什么要使用try / catch?

  17. 17

    如果我们可以使用访问器访问私有数据成员,那么为什么我们不能访问私有方法呢?

  18. 18

    Satis Composer存储库安装

  19. 19

    Satis私有存储库-satis.json结构

  20. 20

    当我们可以推迟RealClass中昂贵的过程时,为什么还要使用代理模式呢?

  21. 21

    当我可以在析构函数中销毁对象时,为什么还要使用std :: unique_ptr?

  22. 22

    如果一个网站使用了Web服务,为什么还要使用它呢?

  23. 23

    如果已经使用过git,为什么还要使用maven?

  24. 24

    如果实现自己的错误检查,为什么还要使用TCP而不是UDP?

  25. 25

    如果FOSUserBundle足以确保RESTful API的安全,为什么还要使用FOSOAuthServerBundle?

  26. 26

    可以使用默认计时器时为什么还要使用自己的TimerQueue?

  27. 27

    如果我可以使用 SQLite 3 在 python 中组织数据,我为什么要使用类?

  28. 28

    当您可以在.js文件中进行设置时,为什么还要使用.env文件?

  29. 29

    如果我仅使用JSON.Net,可以安全删除带有C#Model类中指定的后缀的字段和属性吗?

热门标签

归档