composer指令介紹之install和update及其區別
composer 是 php 的一個依賴管理工具。它允許你申明專案所依賴的程式碼庫,它會在你的專案中為你安裝他們。
然而,對於如何『安裝他們』,新手可能並不清楚。
網路上的答案有的說 composer install,有的說composer update,而這兩者似乎都能成功把依賴下載下來並安裝好,那麼他們究竟有何區別呢?
相關推薦:《composer教程》
#首先要搞清楚的一件事情是,所有的依賴都定義在composer.json中,手冊中給了一些基本用法和例子。你可能已經注意到,在指定版本號碼的時候,我們並不一定要指明一個精確的版本。那麼就有可能發生這麼一個情況,對於同一份composer.json,我們在不同時刻拉取到的依賴文件可能不同(因為composer會在滿足條件的情況下去拉取最新的那份依賴),從而導致一些異常情況。
composer update和composer install正是為了解決這個問題而出現的。
當你執行composer update的時候,composer會去讀取composer.json中指定的依賴,去分析他們,並且去拉取符合條件最新版本的依賴。然後他會把所拉取到的依賴放入vendor目錄下,並且把所有拉取的依賴的精確版本號寫入composer.lock檔案中。
composer install所執行的事情非常類似,只在第一步的時候有差別。當你本地如果已經存在一份composer.lock時,它將會去讀取你的composer.lock而非composer.json,並且以此為標準去下載依賴。當你本地沒有composer.lock的時候,它所做的事情和composer update其實並沒有差別。
這意味著,只要你本地有一份composer.lock,你就可以保證無論過去了多久,你都能拉到相同的依賴。而如果你把它納入你的專案的版本控制中,那麼你就可以確保你專案中的每一個人、每一台電腦,不管什麼系統,都能拉取到一模一樣的依賴,以減少潛在的依賴對部署的影響。當然,請記得,你應該使用的指令是composer install。
那什麼時候該使用composer update呢?當你修改了你的依賴關係,不管是新增了依賴,還是修改了依賴的版本,又或者是刪除了依賴,這時候如果你執行composer install的時候,是不會有任何變更的,但你會得到一個警告訊息
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
有人可能會很好奇php是怎麼知道我修改了依賴,或者composer.lock已經過期了。很簡單,如果你打開composer.lock的話,會發現其中有一個hash字段,這就是當時對應的那個依賴的哈希值。如果值不一致自然而然就知道發生了變更了。
這時候,你應該去透過composer update來更新下你的依賴了。
如果你不希望影響別的已經安裝的依賴,僅僅更新你修改的部分,那你可以透過指定白名單來決定要更新的範圍,例如composer update monolog/monolog只會更新monolog/ monlog這個依賴,別的依賴就算有更新也會被忽略。
以上是composer指令介紹之install和update及其區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

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

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

在使用CraftCMS開發網站時,常常會遇到資源文件緩存的問題,特別是當你頻繁更新CSS和JavaScript文件時,舊版本的文件可能仍然被瀏覽器緩存,導致用戶無法及時看到最新的更改。這個問題不僅影響用戶體驗,還會增加開發和調試的難度。最近,我在項目中遇到了類似的困擾,經過一番探索,我找到了wiejeben/craft-laravel-mix這個插件,它完美地解決了我的緩存問題。

在進行郵件營銷活動時,我遇到了一個棘手的問題:如何高效地創建並發送HTML格式的郵件。傳統的方法是手動編寫代碼並使用SMTP服務器發送郵件,但這不僅耗時,而且容易出錯。在嘗試了多種解決方案後,我發現了DUWA.io,這是一個簡單易用的RESTAPI,能夠幫助我快速創建和發送HTML郵件。為了進一步簡化開發流程,我決定使用Composer來安裝和管理DUWA.io的PHP庫——captaindoe/duwa。

vProcesserazrabotkiveb被固定,мнелостольностьстьс粹餾標д都LeavallySumballanceFriablanceFaumDoptoMatification,Čtookazalovnetakprosto,kakaožidal.posenesko

文章摘要:本文提供了詳細分步說明,指導讀者如何輕鬆安裝 Laravel 框架。 Laravel 是一個功能強大的 PHP 框架,它 упростил 和加快了 web 應用程序的開發過程。本教程涵蓋了從系統要求到配置數據庫和設置路由等各個方面的安裝過程。通過遵循這些步驟,讀者可以快速高效地為他們的 Laravel 項目打下堅實的基礎。

Laravel框架內置了多種方法來方便地查看其版本號,滿足開發者的不同需求。本文將探討這些方法,包括使用Composer命令行工具、訪問.env文件或通過PHP代碼獲取版本信息。這些方法對於維護和管理Laravel應用程序的版本控制至關重要。

在開發一個Laravel應用時,我遇到了一個常見但棘手的問題:如何提升用戶賬戶的安全性。隨著網絡攻擊的日益複雜,單一的密碼保護已經不足以保障用戶的數據安全。我嘗試了幾種方法,但效果都不盡如人意。最終,我通過Composer安裝了wiebenieuwenhuis/laravel-2fa庫,成功地為我的應用添加了雙因素認證(2FA),大大提升了安全性。
