composer.josn 和 composer.lock 的區別,以及 Composer install 和 Composer updata 的區別詳解
下面由composer教學專欄跟大家介紹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 使用,保證了團隊所有協作者開發環境、線上生產環境中運行的程式碼版本的一致性。關於擴充包的安裝方法
那麼,準備新增一個擴充包,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 的區別詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

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

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

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

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境