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](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]。
- ↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 Composer (軟件) - 維基百科
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 Composer (software) - Wikipedia
- ↑ 引用錯誤:無效的
<ref>標籤,未定義名稱為wiki-zh的參考文獻內容文字。 - ↑ 4.0 4.1 4.2 4.3 4.4 4.5 Introduction - Composer
- ↑ About: Composer (software) - DBpedia
- ↑ Compile-N-Run/docs/language/php/... - GitHub
- ↑ 7.0 7.1 7.2 7.3 endoflife.date/products/composer.md - GitHub
- ↑ 8.0 8.1 8.2 PHP: Composer 簡介 - Manual
- ↑ php composer的原理是什麼 - 億速雲
- ↑ Composer | Laravel - 為工匠和代理人打造的簡潔技術棧
- ↑ 引用錯誤:無效的
<ref>標籤,未定義名稱為laravel的參考文獻內容文字。