搜尋
首頁開發工具composercomposer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解

下面由composer教學專欄跟大家介紹composer.josn 和composer.lock 的差別,以及Composer install 和Composer updata 的差別詳解,希望對需要的朋友有所幫助!

composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解

問題說明

我們常常要往現有的專案中加入擴充包,有時會因為文件的錯誤引導,如下圖來自這個文件的:

composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解

composer update 這個指令在我們現在的邏輯中,可能會對專案造成巨大傷害。

因為composer update 的邏輯是按照composer.json 指定的擴充包版本規則,把所有擴充包更新到最新版本,注意,是所有擴充包,舉個例子,你在專案一開始的時候使用了monolog,當時的設定資訊是

"monolog/monolog": "1.*",

安裝的是monolog 1.1 版本,而一個多月以後的現在,monolog 已經是1.2 了,運行指令後直接更新到1.2,這時項目並沒有針對1.2 進行過測試,項目一下子變得很不穩定,情況有時會比這個更糟糕,尤其是在一個龐大的項目中,你沒有對專案寫完整覆蓋測試的情況,什麼東西壞掉了你都不知道。

那應該使用哪一個composer指令呢? install, update 還是 require ?

接下來我們一一解釋。

簡單解釋

composer install - 如有composer.lock 文件,直接安裝,否則從composer.json 安裝最新擴充包和依賴;

composer update - 從composer .json 安裝最新擴充包和依賴;

composer update vendor/package - 從composer.json 或對應套件的配置,並更新到最新;

composer require new/package - 新增安裝new/package, 可以指定版本,如: composer require new/package ~2.5.

流程

## 下來介紹幾個日常生產的流程,來方便加深大家的理解。

流程一:新專案流程

建立composer.json,並新增依賴的擴充包;

執行composer install,安裝擴充包並產生composer.lock;

提交composer.lock 到程式碼版本控制器中,如:git;

流程二:專案協作者安裝現有專案

複製專案後,根目錄下直接執行composer install 從composer.lock 中安裝指定版本的擴充包以及其相依性;

此流程適用於生產環境程式碼的部署。

流程三:為專案新增擴充套件

使用composer require vendor/package 新增擴充;

提交更新後的composer.json和composer.lock 到程式碼版本控制器中,如:git;

關於composer.lock 檔案

composer.lock 檔案裡保存著對每一個程式碼依賴的版本記錄(見下圖),提交到版本控制器中,並配合composer install 使用,保證了團隊所有協作者開發環境、線上生產環境中運行的程式碼版本的一致性。

composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解

關於擴充包的安裝方法

那麼,準備新增一個擴充包,install, update, require 三個指令都可以用來安裝擴充包,選擇哪一個才是正確的呢?

答案是:使用composer require 指令

另外,在手動修改composer.json 新增擴充套件後,composer update new/package 進行指定擴充包更新的方式,也可以正確的安裝,不過不建議使用這種方法,因為,一旦你忘記敲定後面的擴充包名,就會進入萬劫不復的狀態,別給自己留坑呀。

上面的概念不論對新手或者老手來說,都比較混淆,主要記住這個概念:

原有項目新添加擴展的,都使用composer require new/package 這種方式來安裝。

要加上版本的話

composer require "foo/bar:1.0.0"

更新指定擴展到指定版本

有時候你之前使用過的擴充包,加入了新功能,你要更新單獨這個擴充包到指定版本,也可以使用require 來操作。

如下面例子,需要更新「sami/sami」: 「3.0.」 到「sami/sami」: “3.2.”

composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解

命令列運行:

composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解####超過!###

以上是composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:learnku。如有侵權,請聯絡admin@php.cn刪除
作曲家:構建強大PHP應用程序的關鍵作曲家:構建強大PHP應用程序的關鍵Apr 12, 2025 am 12:05 AM

Composer是構建健壯PHP應用的關鍵工具,因為它簡化了依賴管理,提升了開發效率和代碼質量。 1)Composer通過composer.json文件定義項目依賴,並自動下載和管理這些依賴。 2)它生成composer.lock文件確保依賴版本一致,並通過vendor/autoload.php實現自動加載。 3)使用示例包括基本用法如添加日誌庫,以及高級用法如版本約束和環境變量管理。 4)常見錯誤調試技巧包括處理依賴衝突和網絡問題。 5)性能優化建議包括使用composer.lock文件和優化自動加載。

作曲家專業知識:是什麼使某人熟練作曲家專業知識:是什麼使某人熟練Apr 11, 2025 pm 12:41 PM

要在使用Composer時變得熟練,需要掌握以下技能:1.熟練使用composer.json和composer.lock文件,2.理解Composer的工作原理,3.掌握Composer的命令行工具,4.了解基本和高級用法,5.熟悉常見錯誤與調試技巧,6.優化使用和遵循最佳實踐。

作曲家在做什麼?作曲家在做什麼?Apr 08, 2025 am 12:19 AM

Composer是PHP的依賴管理工具,用於聲明、下載和管理項目依賴。 1)通過composer.json文件聲明依賴,2)使用composerinstall命令安裝依賴,3)解析依賴樹並從Packagist下載,4)生成autoload.php文件簡化自動加載,5)優化使用包括使用composerupdate--prefer-dist和調整autoload配置。

什麼是應用作曲家?什麼是應用作曲家?Apr 07, 2025 am 12:07 AM

AppComposer是一種用於構建和管理應用程序的工具。 1)它通過拖拽和配置預定義組件簡化應用開發,提高效率。 2)開發者可以定義組件、組合界面、定義業務邏輯,並最終渲染應用。 3)支持基本和高級用法,如任務管理和條件渲染,幫助構建靈活的應用。

作曲家是用什麼?作曲家是用什麼?Apr 06, 2025 am 12:02 AM

Composer是PHP的依賴管理工具。使用Composer的核心步驟包括:1)在composer.json中聲明依賴,如"stripe/stripe-php":"^7.0";2)運行composerinstall下載並配置依賴;3)通過composer.lock和autoload.php管理版本和自動加載。 Composer簡化了依賴管理,提升了項目效率和可維護性。

什麼是作曲家AI?什麼是作曲家AI?Apr 05, 2025 am 12:13 AM

ComposerAI是一個基於人工智能的工具,用於生成和優化代碼,提高開發效率和質量。其功能包括:1.代碼生成:根據需求生成符合標準的代碼片段。 2.代碼優化:通過分析現有代碼,提出優化建議。 3.自動化測試:生成測試用例,確保代碼質量。

什麼是Android中的作曲家?什麼是Android中的作曲家?Apr 04, 2025 am 12:18 AM

Composer在Android中是SurfaceFlinger服務的一部分,負責將多個圖形層合成到最終顯示緩衝區。 1)收集圖形層,2)排序圖形層,3)合成圖形層,4)輸出到顯示設備,提升應用性能和用戶體驗。

作曲家的定義是什麼?作曲家的定義是什麼?Apr 03, 2025 am 12:17 AM

作曲家是創作音樂的人,他們通過音樂表達情感、講述故事、傳達思想。作曲家的工作包括:1.構思:確定作品的主題和風格;2.創作:編寫旋律和和聲,形成初步的樂曲結構;3.試驗:通過樂器或軟件試奏和調整作品;4.完善:根據試奏結果進行修改和完善,直到滿意為止。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境