作曲家如何重新定义包装师回购技巧



在问题(#3156)讨论中,composer GitHub页面上的"composer非常慢"建议

使用:在全局配置中使用https://url重新定义packagist repo

$ composer config --global repo.packagist composer https://packagist.org

这应该可以解决降级问题,但解决它当然会很有趣。

它确实带来了可观的速度提升我刚刚为ZendFramework2测试了这个(见下面的测试)。

它是如何工作的(为什么禁用allow_ssl_downgrade选项会使进程更快?)


编辑

我运行composer create-project zendframework/zendframework时结合了两个因素:缓存和通过关闭allow_ssl_downgrade重新定义packagist repo。对于由此产生的四种情况,我得到了以下结果:

默认配置:

config: default ([repositories.packagist.url] https?://packagist.org, [repositories.packagist.allow_ssl_downgrade] true)
cache: empty (composer clear-cache)
result: 3m38s
config: default ([repositories.packagist.url] https?://packagist.org, [repositories.packagist.allow_ssl_downgrade] true) 
cache:  not empty
result: 54s
config: changed ([repositories.packagist.url] https://packagist.org)
cache:  empty (composer clear-cache)
result: 3m34s
config: changed ([repositories.packagist.url] https://packagist.org)
cache:  not empty
result: 56s

摘要:禁用allow_ssl_downgrade的"技巧"不会带来速度提升。

尽管如此,我们还是很高兴知道:allow_ssl_downgrade选项的实际作用是什么(这种"降级"意味着什么?优点和缺点是什么?)

因为第二次运行composer create-project zendframework/zendframework时,它从composer的缓存中拿走了所有内容,而不是再次下载!

您可以看到,如果您第二次运行它,它会输出类似以下内容的Loading from cache

Installing zendframework/zendframework (2.5.2)
  - Installing zendframework/zendframework (2.5.2)
    Loading from cache

确保在测试之间运行composer clear-cache以获得可靠的结果。

编辑//

如果我们查看Composer的源代码,我们可以找到这一行:

if ($this->allowSslDowngrade) {
    $this->url = str_replace('https://', 'http://', $this->url);
}

如果allowSslDowngrade = true
主文件通过https检索(请参阅此处),其余文件通过http检索,因为这要快得多。通过sha256检查其他文件的完整性,这应该是对MITM攻击的充分保护。

如果allowSslDowngrade = false
所有内容都通过https 检索

测量结果的差异可能是由于不同的互联网速度或服务器cpu/网络负载或其他原因造成的。

您真的清除了中间的缓存吗?因为这也会显著减少第二次运行的安装时间。

我无法通过更改配置和清除两者之间的缓存来创建如此大的差异。

相关内容

  • 没有找到相关文章

最新更新