Composer 是現代 PHP 專案不可或缺的依賴管理工具。除了基本的 install/update,掌握以下 5 個技巧能大幅提升工作流效率。
composer update vendor/package
避免連帶更新所有相依套件,精準控制版本。
修改 composer.json(如調整描述、作者、空白)會改變雜湊值,觸發警告。不想更新套件時:
composer update nothing # 無此套件,僅更新 lock 檔
# 或 新版 Composer
composer update --lock
composer require "vendor/package:1.0.0"
快速新增專案依賴,自動寫入 composer.json 並更新 lock。
composer init --require=vendor/package:1.0.0 -n
# -n 非互動模式,自動生成最小 composer.json
composer create-project doctrine/orm path 2.2.0
自動克隆倉庫並切換指定版本,省去手動 git clone 找 URI 的麻煩。
dist 壓縮包(~/.composer/cache)。v2.1.4、2.1.*)預設使用 dist。composer install --prefer-dist。# 首次安裝(下載)
$ composer install --profile
Memory: 10.13MB, Time: 4.71s
# 二次安裝(快取)
$ rm -rf vendor && composer install --profile
Memory: 4.96MB, Time: 0.45s # 快 10 倍!
composer update vendor/package --prefer-source
會 git clone 完整倉庫而非下載壓縮包,方便直接修改並追蹤變更:
composer status -v
# 顯示有變更的套件與檔案
# 更新時會詢問是否捨棄本地修改
composer update
# The package has modified files: M Dumper.php
# Discard changes [y,n,v,s,?]?
composer dump-autoload --optimize
# 或安裝時
composer install --optimize-autoloader
將 PSR-0/4 對應表編譯為類別映射陣列,可減少 20-25% 載入耗時。
| 需求 | 指令 |
|---|---|
| 單一套件更新 | composer update vendor/pkg |
| 僅更新 lock 檔 | composer update --lock |
| 不改 json 安裝 | composer require "pkg:ver" |
| 複製專案骨架 | composer create-project ... |
| 強制用壓縮包 | composer install --prefer-dist |
| 修改原始碼 | composer update pkg --prefer-source |
| 生產優化 | composer dump-autoload --optimize |
善用這些技巧,讓 Composer 真正成為你的開發利器,而非單純的安裝工具。