Composer 文件提供了兩個基本的範例。我將嘗試解釋:列出被該軟體包替換的軟體包。這樣,你就可以 fork 一個包,並使用自己的版本號以不同的名稱發布,而需要原始包的軟體包可以繼續使用你的 fork 包,因為它會替換原始包。
假設你的軟體使用
和original/libraryother/package
,它們本身也需要
。 現在你認為
original/library
需要整合新功能,但是維護人員不同意你的建議在他們的軟體包中實現。所以你決定以 better/library
的名稱衍生出該函式庫,並標記一個新發行版。
回到軟體。當然,它應該開始使用 better/library
套件,所以要用它來代替,但 other/package
仍然需要
- 程式碼重複!如何讓那個套件使用你的 better/library
來取代 original/library
?而不需要對它進行 fork ,只需要修改 composer.json(你仍然與 original/library
相容,所以它應該可以工作了)? 你需要增加replace 關鍵字在
composer.json
:<pre class="brush:php;toolbar:false">"replace": {
"original/library":"1.0.2"
}</pre>
現在Composer 知道,在解決「other/package」的依賴關係時,任何來自「better /library」的包包都跟「original/library」一樣好。
這對包含子套件的套件也很有用,例如,主 symfony/symfony 套件包含所有 Symfony 元件,這些元件也可以作為單獨的套件使用。如果您需要主包,它將自動滿足單個組件之一的要求,因為它將替換它們。
相同的規則,只是角度略有不同:對於需要某些功能的任何其他元件,引入框架的元件是一種不錯的方法。但是,如果你在軟體中需要完整的框架,而另一個庫又需要該框架的元件,則該框架的
replace聲明使Composer 不必兩次安裝該單一元件,因為它已經包含在完整的框架中。注意: 替換版本中的佔位符通常是不好的
#在我最初的回答中,我建議:
"replace": { "original/library":"1.*" }
這帶來的後果是:Composer現在將把你的庫版本1.0.0 和原來庫的任何版本1.x 一樣好,即使他們在某一天修復了一些東西或添加了一些特性並發布了版本1.2.34 。這也意味著,如果某一天你的「other/package」得到更新,並且需要「original/library:^1.1」,你庫中的替換仍處於活動狀態,並聲明它可以替換任何版本
1*,,即使你不更新內部的任何內容-這樣做也無法完成,但是如果你不做任何工作,你的舊代碼就永遠不會實現原始庫的新功能,但替換內容恰恰說明了這一點。
因此,從本質上:在替換版本中避免使用通配符版本!如果使用它們,則會對你無法了解或預測的未來做出聲明(除非你可以控制 original/library ,但即使這樣也要非常小心)。一定要使用你知道的並且可以完全重新實現的 original/library
。
原文網址:https://stackoverflow.com/questions/18882201/how-does-the-replace-property-work-with-composer
#翻譯網址:https: //learnku.com/laravel/t/55200
以上是使用replace屬性來避免Composer的依賴衝突的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Composer是一個PHP依賴管理工具,通過composer.json文件管理項目依賴。 1.初始化項目使用composerinit。 2.添加依賴如composerrequireguzzlehttp/guzzle。 3.高級用法包括配置私有倉庫和使用腳本鉤子。 4.常見錯誤如依賴衝突可通過composerwhy-not命令調試。 5.性能優化建議使用composerinstall--prefer-dist和定期更新依賴。

Composer通過自動化依賴解析簡化了PHP項目的依賴管理。 1)讀取composer.json解析依賴需求;2)構建依賴樹處理版本衝突;3)從Packagist下載並安裝依賴到vendor目錄;4)生成composer.lock確保依賴一致性,從而提升開發效率。

AI在Composer中主要通過依賴推薦、依賴衝突解決和代碼質量提升來提高開發效率和代碼質量。 1.AI可以根據項目需求推薦合適的依賴包。 2.AI提供智能解決方案來處理依賴衝突。 3.AI審查代碼並提供優化建議,提升代碼質量。通過這些功能,開發者可以更專注於業務邏輯的實現。

作曲家是通過創作音樂作品來表達情感、講述故事或表達思想的人,他們的角色包括構思音樂結構、選擇樂器組合和與其他音樂家合作。 1)作曲家在創作過程中會經歷構思、創作、修改和完善四個階段;2)他們需要掌握音樂理論,如和聲、對位和旋律,以確保作品的質量和效果。

Composer是PHP的依賴管理工具,通過composer.json和composer.lock文件管理項目依賴。 1.安裝Composer:運行特定命令並移動composer.phar到系統路徑。 2.更新Composer:使用composerself-update命令。 3.依賴管理:通過composerrequire命令添加依賴,自動更新相關文件並下載包。

AI在代碼生成和分析中發揮重要作用:1)通過機器學習和NLP生成代碼,如GitHub的Copilot;2)進行代碼分析,識別bug和優化建議,如SonarQube;3)提高開發效率和代碼質量,但需人工審查和優化。

Composer本身不包含AI功能,但可以通過AI工具增強其能力。 1)AI可以分析composer.json文件,建議優化依賴項和預測版本衝突。 2)AI驅動的平台如GitHubCopilot可提供實時代碼建議,提升開發效率。使用AI工具時需結合實際情況進行驗證和調整。

成功作曲家的關鍵特質包括:1)豐富的創意與想像力,2)紮實的技術技能與工具掌握。這些特質與編程中的創造性和結構化思維相似,幫助作曲家在音樂創作中實現創意並優化作品。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver CS6
視覺化網頁開發工具

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

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。