写点什么

独家 | PHP 开发者福音:阿里上线 Composer 全量镜像

  • 2019-07-12
  • 本文字数:2184 字

    阅读完需:约 7 分钟

独家 | PHP开发者福音:阿里上线Composer全量镜像

InfoQ 独家获悉,阿里云今日宣布正式上线 Composer 全量镜像,这款工具几乎可以与 PHP Packagist 官方实时同步,每隔 30 秒刷新全国 CDN 缓存,这对于沉浸在 Laravel China 即将关闭消息中的开发者而言,可谓是一个好消息。


一周前,个人开发者 Summer 在博客上宣布:Laravel China 镜像将于两个月后停用,并给出了迁移新镜像的相关注意事项。对 PHP 开发者而言,Laravel China 镜像还是非常受欢迎的,此次宣布关闭确实是因为遇到了无法很好解决的问题。


7 月 12 日,InfoQ 独家获悉:阿里云正式上线PHP Composer全量镜像,所有 PHP 开发者均可使用。如今,PHP 开发离不开 Composer,但通过 Composer 安装第三方包时,代码数据一般从 Github 上下载,而安装包的元数据则从 Packagist 下载,速度通常较慢。因此,阿里云选择上线 PHP Composer 全量镜像。就此,InfoQ 对该项目相关技术专家进行了独家专访,了解这一项目背后的故事。

PHP Composer 全量镜像

据介绍,PHP Composer 全量镜像可以理解为一个镜像库,类似 Node.Js 的 NPM 镜像,该工具的最初研发灵感源自阿里内部一位 90 后工程师顾咏,由于其日常负责开发阿里云产品的 PHP SDK,在工作中经常遇到同一个问题:尽管已经根据 PHP 最新版本发布了新的 SDK,但由于镜像工具没有实时同步版本,导致用户安装不成功。



此外,阿里巴巴云效平台也提出同样诉求,目前有近 6 万家企业的开发者在云效平台上进行一站式企业协同研发,其中有相当一部分在构建 PHP 工程,镜像工具同样影响这部分开发者体验。因此,顾咏向主管朴灵提议:开发一款快速且稳定的镜像工具。


当时,业内也存在一些开源工具,但普遍缺乏有力支持,稳定性和速度无法满足需求。由于朴灵本人是 Node.js 布道者,NPM 中国镜像的前两代搭建者,因此对此类研发较为支持,而顾咏曾对镜像系统有过研究,因此整个研发过程相对顺利,相比同类工具研发可能节省了不少时间。


采访中,顾咏表示,国内镜像所做的是缓存所有安装包和元数据到自己的服务器,并通过国内 CDN 进行加速,实现 Composer require/install/update 的操作,并达到最快速度。阿里云开源的 PHP Composer 全量镜像能够实现与 PHP Packagist 官方实时同步,每隔 30 秒刷新全国 CDN 缓存。基于阿里云 OSS 和 CDN,研发同步系统,通过任务分发,实现快速和稳定的同步。

使用方式

全局配置(推荐)


所有项目都会使用该镜像地址:


composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码


取消配置:


composer config -g --unset repos.packagist
复制代码


项目配置


仅修改当前工程配置,仅当前工程可使用该镜像地址:


composer config repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码


取消配置:


composer config --unset repos.packagist
复制代码


调试


composer 命令增加 -vvv 可输出详细的信息,命令如下:


composer -vvv require alibabacloud/sdk
复制代码

Laravel China 即将关停

如开篇所言,Laravel China 即将于两个月后关停。在这款 PHP Composer 全量镜像之前,Laravel-China 可能是众多 PHP 开发者最常用的镜像工具之一。简单来说,Laravel China 是一款 Composer 全量镜像,提供相同的功能,由个人开发者 Summer 和禅师在 2017 年开发推出,在 PHP 社区中受到开发者的热烈欢迎,但在稳定性和实时同步上都还存在一些问题。同时,随着使用量增加,也遇到了流量成本超标、恶意流量等情况。


7 月 3 日,阿里云开始小范围公测 PHP Composer 全量镜像,在没有任何官方推广的情况下,单日下载量甚至超过 30 万次,测试期间主要关注提高 CDN 的刷新速度。同时,Summer 接收到无数开发者的询问:Laravel China 镜像将何去何从。


根据 Summer 的个人博客:经过与禅师的讨论,Summer 做了一个艰难的决定:Laravel China 镜像将于两个月后停用。Summer 解释道:“我们的 CDN 资源是有限的,为了防止恶意流量消耗,本着牺牲少部分人的使用体验,让大部分人能正常使用的初衷,我们在后台做了诸多限制。例如说同一个 IP 下一分钟内只能下载多少次,最大允许下载的文件大小(后台观察到有超大的 zip 包)等。”


限制加上去后,恶意流量有所减少,对成本控制起到很好的效果。但是随之而来又出现了另一个问题:


误杀率较高,分析了下原因,有可能是带宽速度过快,触发「分钟内下载频率限制」,或多人共用一个 IP,这种常见于同一个公司有多名使用者,出口 IP 是同一个的情况。

我们陷入一个两难的境地:基于 CDN 平台上提供的机制,实难分辨上面的这些请求。解开限制,又会出现流量成本超标的情况。误杀情况无法避免,可预知的,接下来还会出现更多的反馈「Composer 要求用户名」的帖子。


最终,Summer 认为:与其维护一个残缺的镜像,还不如让贤,推广其他稳定、可用性高、流量不限制的大厂镜像。



作为个人开发者,Summer 与禅师牺牲了很多时间用于项目维护,这是非常值得肯定的。在众多可替代项目出现之后,Laravel China 镜像选择在这个时候停用,也算是不辱使命,功成身退。

结束语

如今,阿里云正式开放下载PHP Composer全量镜像,虽然这会带来 ECS、CDN 方面的资源成本,但可以给广大 PHP 开发者带来实际价值,这也体现出个人开发者维护开源项目的不易。现在,国内全量镜像有了更多选项,众多大厂均参与其中,再加上 镜像源码 开放,降低了构建镜像的成本,相信未来还会有更多选项可供选择。


项目地址:https://developer.aliyun.com/composer


2019-07-12 11:0013570
用户头像
赵钰莹 极客邦科技 总编辑

发布了 884 篇内容, 共 651.7 次阅读, 收获喜欢 2680 次。

关注

评论 5 条评论

发布
用户头像
phper的福音。
2019-07-12 15:27
回复
可以关注下项目动态,期待您的反馈和建议~
2019-07-12 16:20
回复
强的一塌糊涂
2019-07-12 18:37
回复
用户头像
牛逼
2019-07-12 13:57
回复
用户头像
对志愿维护开源项目的个人开发者致敬,也肯定现在众多大厂的开源精神
2019-07-12 11:44
回复
没有更多了
发现更多内容

万界星空科技电线电缆行业生产管理智能化MES

万界星空科技

mes 万界星空科技 电线电缆行业 电线电缆mes

一键自动化博客发布工具,用过的人都说好(51cto篇)

程序那些事

工具 自动发布

百度百舸 AIAK-LLM 的大模型训练和推理加速实践

Baidu AICLOUD

训练 推理 大模型

奖金+1 万,OpenTenBase 开源核心贡献挑战赛,KB 专家助力其跑在 K8s 上

小猿姐

开源 Kubernetes

2024/25 奥特斯再度迈入增长之路

财见

win版JetBrains IntelliJ IDEA Ultimate 2024(Java集成开发环境)激活版

iMac小白

软件测试学习笔记丨MyBatis 多条件查询和模糊查询

测试人

软件测试

结合多模态 AI 谷歌展示 AR 眼镜原型机;Meta 被曝开发带摄像头的 AI 耳机丨 RTE 开发者日报 Vol.204

声网

一文读懂Pencils Protocol Valut的收益叙事:一鱼多吃

西柚子

MySQL 给用户添加 ALTER VIEW 的权限

华为云开发者联盟

MySQL 数据库 华为云 华为云开发者联盟 企业号2024年5月PK榜

数据库索引回表困难?揭秘PolarDB存储引擎优化技术

阿里云瑶池数据库

数据库 阿里云 polarDB 分布式,

8000-12000奖金等你拿,OpenTiny 开源之夏10大导师齐上阵,带你立刻get 项目详情!!!

OpenTiny社区

Vue 前端 低代码 组件库 OpenTiny

win版JetBrains PhpStorm 2024(PHP集成开发环境)中文特别版

iMac小白

PhpStorm中文版 Phpstorm下载 PhpStorm激活版 PhpStorm破解版

Altair 宣布收购 Research in Flight,为空气动力学分析开辟新途径

财见

宝尊将于2024年5月28日发布2024年一季度未经审计财务业绩

财见

企业级小程序技术平台与中间件提供商凡泰极客完成近亿元B轮融资

FN0

小程序 小程序化

vivo蓝心大模型登陆火山方舟,一站式方案实现智能普惠

新消费日报

MyBatis如何通过拦截器修改SQL

源字节1号

开源 软件开发 前端开发 后端开发 小程序开发

Qualcomm QCN9274 and QCN6224: Performance comparison and application scenarios of RF module cpus

wifi6-yiyi

qcn9274 QCN6224

Python在物联网中的应用

技术冰糖葫芦

一文读懂 Pencil 积分,打开 Pencils Protocol 生态权益大门

西柚子

中国科学家颜宁荣膺2024欧莱雅-联合国教科文组织“世界杰出女科学家成就奖”

财见

金蝶发布AI管理助手 重构苍穹AI平台

人称T客

什么是ARP攻击,怎么做好主机安全,受到ARP攻击有哪些解决方案

德迅云安全杨德俊

公司里的“卷王”,是主动选择还是迫于无奈?

伤感汤姆布利柏

不容错过的邀请:《哈利·波特》全系列中英文版本上线华为阅读

最新动态

Python最容易犯的五个错误,你中了几个?

我再BUG界嘎嘎乱杀

Python 编程语言 开发语言

解锁高效创新:IPD策略如何重塑产品开发流程

IPD产品研发管理

项目管理 产品经理 IT IPD 产品研发

独家 | PHP开发者福音:阿里上线Composer全量镜像_文化 & 方法_赵钰莹_InfoQ精选文章