文章轉發自專業的Laravel開發者社群,原始連結:learnku.com/laravel/t/2…
Composer 是 PHP 的一個依賴管理工具。 如果你是一名 PHP 開發人員,那麼你很可能每天都在使用它並且頻繁的執行命令 require
, install
和 update
。也許你並沒有意識到, 我們可以使用一些其他的 Composer 命令,來更加輕鬆的使用它。
它有許多的命令可以使用,但今天我將分享我使用的並且每天都有幫助的 6 個命令。
show
先說下 show
命令。它允許您檢視專案的所有已安裝包(包括依賴項),以及檢視相關包的說明。所有這些資訊都可以在Composer鎖檔案(composer.lock)中找到, 但是使用 show
命令相對來說是一種更簡單、更方便的一種檢視包資訊的方法。
要列出所有已安裝的包及其版本號和說明,只需使用 show
:
composer show
複製程式碼
有時候把這些資訊用依賴關係樹的形式檢視會更容易理解, 可以通過 --tree
or -t
引數:
composer show -t
複製程式碼
如果要篩選返回的包,可以使用萬用字元傳遞一個額外的字串引數 *
:
composer show 'symfony/*'
複製程式碼
這將返回所有已安裝的symfony包。注意這裡的引號, 如果您使用的是 bash shell,不需要加這個引號, 但是如果您使用的是 zsh 你不用引號的話就會報 ‘no matches found’ 錯誤。
如果要檢視有關特定包的資訊,需要完整包名:
composer show laravel/framework
複製程式碼
這將向您顯示安裝的版本、它的許可證和依賴項以及它在本地安裝的位置等資訊。
why
如果您想知道安裝特定軟體包的原因,可以使用 why 命令來確定哪些依賴項需要它:
composer why vlucas/phpdotenv
複製程式碼
why
是depends命令的別名,但就我個人而言,我發現使用 ‘why’ 更容易記住。您可以使用--tree
或-t
標誌在依賴樹中檢視此資訊:
composer why vlucas/phpdotenv -t
複製程式碼
why-not
有時,一個或多個已安裝的軟體包將阻止安裝或更新軟體包。 為了檢查是哪些安裝包,我們可以使用 why-not
命令(別名為 prohibits
)。 例如,Laravel 最近釋出了一個新的5.8版本的框架; 我們可以使用 why-not
命令檢查任何阻止我們更新 laravel/framework
包的包:
composer why-not laravel/framework 5.8
複製程式碼
同樣,我們可以使用 --tree
或 -t
標記在依賴關係樹中檢視此資訊:
composer why-not laravel/framework 5.8 -t
複製程式碼
outdated
在使用 composer update
命令前,你也許想檢測一下已安裝的包,哪些有可以升級的。這可以使用 outdated
命令。
composer outdated
複製程式碼
此命令是 composer show -lo
的別名之一。
根據語義化的版本,返回著色的程式碼,來標明每個包的狀態:
- Green: 當前安裝包已是最新版本
- Yellow: 有可升級的更新, 但可能有不相容的修改。
- Red: 有可用的小版本升級 (一般是bug修復)
如果希望高亮顯示小的升級版本, 可以使用 outdated
命令,以--minor-only
或者 -m
引數 :
composer outdated -m
複製程式碼
狀態
我發現自己經常會使用 install
、update
命令的引數 --prefer-source
來處理原始碼安裝的依賴項。 然後,如果我修改了任何這些依賴項,我需要一種快速檢查哪些包已被修改的方法。 status
命令提供了一種方便的方法。
您可以使用 --verbose
或 -v
引數來檢視本地修改的軟體包和檔案:
composer status -v
複製程式碼
我發現使用 verbose 標記是使用此命令最有用的方法。
許可
最後,知道您安裝的每個軟體包的許可證是非常有用的。 Composer 有一個方便的 licenses
命令,用於查詢許可的完整列表:
composer licenses
複製程式碼