为什么只有某些作曲家包存储在缓存中而不是全部?

时间:2015-12-05 16:10:49

标签: php composer-php packagist

我正在运行ubuntu 14.04并注意到当我为composer.phar updategoogledoctrine等供应商的依赖项运行twig时将下载的文件存储在我的本地~/.composer/cache/files/vendor中。但是,当我自己创建library package时," required"它在另一个测试包中,它没有在/cache/files/文件夹中下载(但确实在/repo/https---packagist.org/*.json文件中添加了条目)。

我想知道composer.phar在什么情况下将文件和存储下载到缓存中?我之所以这样问是因为我将来要构建很多应用程序,包括教义,symfony和zend框架等组件,我不希望composer.phar通过下载浪费互联网带宽每个应用程序一次又一次地复制每个框架。当然,另一个优点是,如果我决定切换ubuntu并转移到其他发行版,我不想再次下载大量的作曲家包。

我个人的猜测是,因为我还没有在github repo中标记我的lib包(它仍然是dev-master),所以它不存储在缓存中。有人可以确认一下吗?

1.composer.json require部分应用依赖于google/apiclient

"require": {
    "google/apiclient": "1.*.*"
}

2.composer.json require部分依赖于prahladyeri/indiegogo的应用:

"require": {
    "prahladyeri/indiegogo": "dev-master"
},
"license": "MIT",
"minimum-stability": "dev"

1 个答案:

答案 0 :(得分:2)

如果Composer克隆了一个git存储库,则它不使用缓存。

标记版本将从Github API下载为ZIP文件,因为它们的大小通常比整个存储库小,并且它们被放入缓存目录。

提前发布,经常发布。如果您标记您认为稳定且可能被使用的每个提交,则没有人会反对。使用semantic versioning,您有很多选项来标记仍在不断发展的不稳定版本,但您可以为用户提供很多帮助。