跳转到内容

Composer

轻之舟百科,让知识轻装启航
IdleTap-bot​(留言 | 贡献)2026年8月11日 (二) 10:18的版本 (由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行))
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
Composer
中文名Composer
英文名Composer
开发者Nils Adermann、Jordi Boggiano[1]
首次发布2012年3月1日[1][2]
当前版本2.10.1(2026年6月4日)[1]
编程语言PHP[1]
类型软件包管理系统、依赖管理工具[1]
许可协议MIT许可证[1]
网站getcomposer.org
源代码库GitHub

Composer 是 PHP 编程语言的一个应用程序级依赖管理器,它提供了一种用于管理 PHP 软件及其所需库之间依赖关系的标准格式[3][2]。Composer 由 Nils Adermann 和 Jordi Boggiano 开发,于 2012 年 3 月 1 日首次发布[1][2]。它并非像 Yum 或 Apt 那样的系统级包管理器,而是在单个项目的基础上管理依赖,通常将依赖安装到项目目录下的 `vendor` 文件夹中[4]。Composer 的设计受到了 Node.js 的 npm 和 Ruby 的 Bundler 的强烈启发[1][2]。

Composer 由 Nils Adermann 和 Jordi Boggiano 于 2011 年 4 月开始开发,并于 2012 年 3 月 1 日首次发布第一个版本[1][2]。其诞生受到了 Node.js 的 npm 以及 Ruby 的 Bundler 的启发[1][2]。该项目的依赖关系解析算法最初源于 openSUSE 的 libzypp SAT 求解器的一个 PHP 移植版本[2][5]。Composer 的出现极大地改变了 PHP 开发者共享和管理代码的方式[6]。

Composer 2.x 版本于 2020 年 10 月发布,带来了显著的性能提升,尤其是在依赖解析方面。官方鼓励用户从 1.x 版本升级至 2.x 版本[7]。Composer 2.2 是长期支持(LTS)版本,支持 PHP 5.3.2 及更高版本,而更新的版本则要求 PHP 7.2.5 或更高版本[4][7]。

核心概念

[编辑 | 编辑源代码]

Composer 的核心是一个依赖管理工具。开发者通过在当前项目的根目录下创建一个 `composer.json` 文件,来声明项目所依赖的外部库及其版本约束[4][8]。Composer 随后会解析这些声明,计算出需要安装的精确版本,并将其下载到项目目录下的 `vendor` 文件夹中[4]。

依赖解析

[编辑 | 编辑源代码]

Composer 的依赖解析过程涉及构建一个完整的依赖关系图。它会递归地分析 `composer.json` 文件中指定的每个依赖项及其自身的依赖,直到所有依赖关系都被解析[9]。Composer 利用 SAT(布尔可满足性问题)求解器来解决复杂的版本冲突问题,确保安装的软件包集合能够满足所有依赖约束[2]。

自动加载

[编辑 | 编辑源代码]

Composer 不仅管理依赖的下载和安装,还提供了自动加载(autoload)功能。通过 Composer 生成的 `vendor/autoload.php` 文件,开发者可以轻松地自动加载所有已安装的第三方库,无需手动编写繁琐的 `require` 或 `include` 语句[8][2]。

生态系统

[编辑 | 编辑源代码]

Packagist

[编辑 | 编辑源代码]

[Packagist](https://packagist.org) 是 Composer 的默认主要软件包仓库[2][8]。开发者可以在这里发布自己的 PHP 包,供其他开发者通过 Composer 安装和使用[2]。

主要框架与库的支持

[编辑 | 编辑源代码]

Composer 已成为现代 PHP 生态的基石,几乎所有主流 PHP 框架和库都通过 Composer 进行分发和管理[10]。这些框架包括但不限于 Symfony、Laravel、CodeIgniter、CakePHP、Drupal、TYPO3 和 Yii 等[2]。许多流行的 PHP 库,如 Guzzle(HTTP 客户端)、Carbon(日期处理)和 PHPUnit(测试框架),也通过 Composer 分发[11]。

版本历史

[编辑 | 编辑源代码]

Composer 的主要版本发布历史如下:

  • **Composer 1.x**:初始稳定版本系列,于 2012 年发布,奠定了 PHP 依赖管理的基础。目前已基本终止支持(EOL)[7]。
  • **Composer 2.0**:于 2020 年 10 月发布,带来了性能的大幅提升和新的依赖解析算法。
  • **Composer 2.2 (LTS)**:长期支持版本,支持 PHP 5.3.2 及以上版本[4]。
  • **Composer 2.3+**:要求 PHP 7.2.5 或更高版本[4][7]。
  • **Composer 2.10.1**:截至 2026 年 6 月的当前稳定版本[1]。

参考文献

[编辑 | 编辑源代码]