项目开发中,难免会用到各种已有的扩展库,各个扩展库的依赖关系可能错综复杂,使用传统的require
include
的方式会让你困于处理各种依赖问题,而无法专注于自身的业务代码。
这一次,真正了解Composer
。
现代PHP依赖管理利器
PHP5.3
引入命名空间
的概念,有了这一加持,万众期待的Composer
踏着七彩祥云而来,让这个世界上最好的编程语言
有了现代范儿。
依赖管理
工具在现代主流编程语言中不可或缺,Java有Maven
,Python有pip
,Nodejs有npm
, Ruby有gem
,Go有go mod
。
Composer
作为现代PHP依赖管理利器,它允许开发者声明项目所依赖的库,并且自动管理(安装/更新)它们,让开发者可以快速的组装
扩展
自己的项目。
Composer
的出现,让PHP生态有了质的飞跃,诞生了各式各样、丰富多彩的轮子
,主流框架Laravel
、Yii
、Symfony
等相继支持Composer
,国产框架ThinkPHP
从5.0以后的版本也支持了Composer
,老牌框架Codeigniter
在最近的发布的4.0版本也采用了Composer
管理依赖。
PHP的应用商店
Packagist 是Composer
主要的、默认的仓库,它聚合可通过Composer安装的公共PHP软件包,这些软件包可以托管在Github
上。
截止目前,Packagist
累计收录25万多项目,包含200多万个版本,累计安装222.68亿次。
由于网络原因,国内访问上述仓库时很慢很卡、甚至超时,国内大厂陆续提供了国内的Composer
镜像仓库。