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 -toutdated在在使用
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更多相關的composer教程文章,請訪問
composer使用教程專欄!
以上是推薦六個鮮為人知的Composer指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Composer是一個PHP依賴管理工具,通過composer.json文件管理項目依賴。 1.安裝Composer:運行幾條命令並移動到全局路徑。 2.配置Composer:在項目根目錄創建composer.json文件並運行composerinstall。 3.依賴管理:通過composer.json指定庫及其版本,使用語義化版本號控制。 4.使用Autoloading:通過autoload字段定義類的自動加載規則,簡化開發。 5.包管理:支持私有庫管理,通過repositories字段定義私有庫地址

在開發PHP項目時,我們常常需要對代碼的執行時間進行監控,以優化性能。在我最近的一個項目中,我遇到了一個問題:需要在不同代碼段之間進行精確的計時,但手動實現計時器不僅繁瑣,而且容易出錯。經過一番探索,我發現了phpunit/php-timer這個庫,它通過Composer輕鬆集成,極大地簡化了我的工作。

在開發過程中,版本管理一直是個棘手的問題,尤其是在處理軟件包依賴時。最近,我在項目中遇到了一個關於版本控制的問題:需要精確地管理和比較不同軟件包的版本信息,確保項目能夠正確地依賴和升級。我嘗試了幾種方法,但效果不盡如人意。最終,我找到了phar-io/version這個庫,它完美地解決了我的問題。

在開發項目時,我常常需要使用一些新版本PHP的特性,但有時由於服務器環境的限制,不得不使用較低版本的PHP。這導致我無法使用某些新功能,比如PHP8.3中引入的json_validate和Override等。為了解決這個問題,我找到了Symfony的polyfill-php83庫,它讓我可以在低版本PHP中使用這些新功能。

在進行PHP項目開發時,統計代碼行數是一項常見的需求,尤其是在評估項目規模或進行代碼審查時。然而,手動統計不僅耗時且容易出錯。最近,我在項目中遇到了這個需求,嘗試了多種方法後,最終通過Composer安裝sebastian/lines-of-code庫,輕鬆解決了這一問題。

在開發PHP項目時,經常會遇到一些函數或方法執行時間過長,導致程序超時的問題。我曾嘗試了多種解決方案,但效果不盡如人意,直到我發現了phpunit/php-invoker庫。這個庫通過設置超時時間來調用可執行函數,徹底解決了我的難題。

在開發一個文件處理系統時,我遇到了一個棘手的問題:如何準確地檢測文件的MIME類型。最初,我嘗試使用PHP的內置函數mime_content_type()和finfo類,但發現這些方法在處理某些特殊文件時不夠穩定,導致系統誤判文件類型,影響了用戶體驗。經過一番探索,我找到了league/mime-type-detection這個庫,它為我的項目帶來了完美的解決方案。

在項目開發中,我遇到了一個常見但棘手的問題:如何高效地管理和操作集合數據。我嘗試了多種方法,但處理複雜數據結構時總覺得不夠靈活和高效。後來,我發現了ramsey/collection這個庫,它徹底改變了我的開發體驗。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版