2020/10/24
[Composer] v2.0 已釋出! 來更新至最新的 Composer 2.0 版本吧!
markdown
2020-10-24 Composer 2.0 正式釋出!
### 關於 Composer 2.0 新功能
- 改善效能 50% 以上 (這個很需要啊)
- 架構變更及確定性:vendor 更新不受網路錯誤干擾
- Runtime 特徵 (可在 composer.json 設定 `"composer-runtime-api": "^2.0"`)
- 錯誤訊息改善
- 暫時限制部分更新 (`composer update vendor/package:1.0.*`)
### 如何更新至 Composer 2.0
Composer 2.0 基本上可以順利快速升級
- 2.0 版本仍支援 PHP 5.3 以上版本
- composer.lock 檔案可在版本間互相操作,可更新至 2.0 版本或是回復
- 大多數的命令在 2.0 保持一致
若原先使用 Composer 1.x 版本,執行 `composer self-update` 則會更新 1.x 的主要穩定版本
更新至 2.0 只要執行以下命令
```
composer self-update --2
```
若隨時要變更至 1.x 版本,則執行
```
composer self-update --1
```
### 向下相容問題
- plugings: 需要更新支援 Composer 2
- 避免相容性錯誤,可在部署至 production 時執行 `composer check-platform-reqs --no-dev`
- Repository 優先性:若套件存在於較高優先的儲存庫,即會完全忽略較低優先性的儲存庫
- 無效的 PSR-0 / PSR-4 設定將不自動載入 optimized-autoloader 模式
### 未來如何
根據發佈消息,Composer 2.1 應該還是會支援 PHP 5.3,但 Composer 2.2 就會要求要 PHP 7.1.3 以上版本。
### References
- [Composer 2.0 is now available!](https://blog.packagist.com/composer-2-0-is-now-available/)
- [Upgrade guides for Composer 1.x to 2.0](https://getcomposer.org/upgrade/UPGRADE-2.0.md)