搜尋
首頁開發工具composer5個PHP開發者應該知道的Composer小技巧

Composer 是新一代的PHP依賴管理工具。本文介紹使用Composer的五個小技巧,希望能為你的PHP開發帶來方便。

5個PHP開發者應該知道的Composer小技巧

1. 只更新單一函式庫

#只想更新某個特定的函式庫,不想更新它的所有依賴,很簡單

composer update foo/bar

此外,這個技巧還可以用來解決「警告訊息問題」。你一定看過這樣的警告訊息:

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.

擦,哪裡出問題了?別驚慌!如果你編輯了composer.json,你應該會看到這樣的資訊。例如,如果你增加或更新了細節訊息,例如函式庫的描述、作者、更多參數,甚至只是增加了一個空格,都會改變檔案的md5sum。然後Composer就會警告你哈希值和composer.lock中所記載的不同。

那我們該怎麼辦呢? update指令可以更新lock文件,但是如果只是增加了一些描述,應該是不打算更新任何函式庫。這種情況下,只需update nothing:

$ composer update nothing

Loading composer repositories with package information

Updating dependencies

Nothing to install or update

Writing lock file

Generating autoload files

這樣一來,Composer不會更新函式庫,但會更新composer.lock。注意nothing並不是update指令的關鍵字。只是沒有nothing 這個包導致的結果。如果你輸入foobar,結果也是一樣。

如果你用的Composer版本夠新,那麼你可以直接使用--lock選項:

composer update --lock

2. 在不編輯composer.json的情況下安裝函式庫

你可能會覺得每安裝一個函式庫都需要修改composer.json太麻煩,那麼你可以直接使用require指令。

composer require "foo/bar:1.0.0"

這個方法也可以用來快速地新開一個專案。 init指令有--require選項,可以自動寫composer.json:(注意我們使用-n,這樣就不用回答問題)

$ composer init --require=foo/bar:1.0.0 -n
$ cat composer.json
{
    "require": {

        "foo/bar": "1.0.0"
    }
}

3. 衍生很容易

#初始化的時候,你試過create-project指令麼?

composer create-project doctrine/orm path 2.2.0

這會自動複製倉庫,並檢出指定的版本。克隆庫的時候用這個指令很方便,不需要搜尋原始的URI了。

4. 考慮緩存,dist包優先

最近一年以來的Composer會自動存檔你下載的dist包。預設設定下,dist套件用於加了tag的版本,例如"symfony/symfony": "v2.1.4",或是通配符或版本區間,"2.1.*"或">=2.2,

dist套件也可以用於諸如dev-master之類的分支,Github允許你下載某個git引用的壓縮套件。為了強制使用壓縮包,而不是克隆原始碼,你可以使用install和update的--prefer-dist選項。

下面是一個例子(我使用了--profile選項來顯示執行時間):

$ composer init --require="twig/twig:1.*" -n --profile

Memory usage: 3.94MB (peak: 4.08MB), time: 0s

  

$ composer install --profile

Loading composer repositories with package information

Installing dependencies

  - Installing twig/twig (v1.12.2)

    Downloading: 100%

  

Writing lock file

Generating autoload files

Memory usage: 10.13MB (peak: 12.65MB), time: 4.71s

  

$ rm -rf vendor

  

$ composer install --profile

Loading composer repositories with package information

Installing dependencies from lock file

  - Installing twig/twig (v1.12.2)

    Loading from cache

  

Generating autoload files

Memory usage: 4.96MB (peak: 5.57MB), time: 0.45s

這裡,twig/twig:1.12.2的壓縮套件被保存在~/.composer /cache/files/twig/twig/1.12.2.0-v1.12.2.zip。重新安裝套件時直接使用。

5. 若要修改,原始碼優先

當你需要修改函式庫的時候,複製原始碼就比下載套件方便了。你可以使用--prefer-source來強制選擇克隆原始碼。

composer update symfony/yaml --prefer-source

接下來你可以修改檔案:

composer status -v

You have changes in the following dependencies:

/path/to/app/vendor/symfony/yaml/Symfony/Component/Yaml:

    M Dumper.php

當你試著更新一個修改過的函式庫的時候,Composer會提醒你,問是否放棄修改:

$ composer update

Loading composer repositories with package information

Updating dependencies

  - Updating symfony/symfony v2.2.0 (v2.2.0- => v2.2.0)

    The package has modified files:

    M Dumper.php

    Discard changes [y,n,v,s,?]?

為生產環境做準備

最後提醒一下,在部署程式碼到生產環境的時候,別忘了優化一下自動載入:

composer dump-autoload --optimize

安裝套件的時候可以同樣使用--optimize- autoloader。不加這個選項,你可能會發現20%到25%的效能損失。

更多composer相關技術文章,請造訪composer#欄位! !

以上是5個PHP開發者應該知道的Composer小技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除
作曲家:PHP開發中AI的未來作曲家:PHP開發中AI的未來Apr 26, 2025 am 12:10 AM

Composer'sfutureinPHPdevelopmentwithAIincludes:1)AI-enhanceddependencymanagementforsuggestinglibraries,2)AI-drivencodegenerationfortailoredboilerplate,and3)predictivemaintenanceforupdatesandpatches,butfaceschallengeslikedataprivacyandAIbias.

作曲家的技能和素質:概述作曲家的技能和素質:概述Apr 25, 2025 am 12:03 AM

成為一名成功的作曲家需要具備音樂理論、樂器演奏和音響設計等技能,以及敏銳的靈感捕捉和不斷的作品修改能力。作曲家通過這些技能和特質,將情感和思想轉化為音樂作品,激發聽眾共鳴。

作曲家的資格:評估能力作曲家的資格:評估能力Apr 24, 2025 am 12:15 AM

Composer使用熟練程度可以通過以下四個方面評估:1)理解基礎概念,如包、依賴和版本控制;2)掌握核心功能,包括解析composer.json、解決依賴、下載包和生成autoload文件;3)熟練使用基本和高級命令,如composerinstall、update、require和dump-autoload;4)應用最佳實踐,如使用composer.lock文件、優化autoload配置和定期清理緩存。

作曲家:利用AI進行自動任務作曲家:利用AI進行自動任務Apr 23, 2025 am 12:03 AM

使用Composer結合AI可以實現自動化任務。 1.Composer通過配置文件管理依賴,AI可優化版本選擇。 2.在實際應用中,AI可用於自動化依賴管理、測試和部署。 3.性能優化包括依賴加載和緩存策略。 4.需注意版本衝突和AI誤判等問題。通過這些方法,AI能提升工作效率和智能化程度。

與AI:代碼建議和見解的作曲家與AI:代碼建議和見解的作曲家Apr 22, 2025 am 12:05 AM

ComposerwithAI是利用AI提升編程體驗的工具。 1)它通過分析代碼結構、語法和模式,提供實時建議和錯誤修復。 2)高級功能包括代碼重構、性能優化和安全性檢查。 3)使用時可調整配置、提供反饋和結合其他工具來解決常見問題。

作曲家:PHP依賴管理器的簡介作曲家:PHP依賴管理器的簡介Apr 21, 2025 am 12:02 AM

Composer是PHP的依賴管理工具,用於管理項目所需的庫和包。 1)它通過composer.json文件定義依賴,2)使用命令行工具進行安裝和更新,3)自動化依賴管理過程,提高開發效率,4)支持高級功能如動態添加依賴和自動加載,5)通過composer.lock文件確保團隊環境一致性。

作曲家的目的:有效地管理依賴關係作曲家的目的:有效地管理依賴關係Apr 20, 2025 am 12:04 AM

Composer是PHP的依賴管理工具,通過composer.json和composer.lock文件管理項目依賴。 1.創建composer.json文件並運行composerinstall安裝依賴。 2.使用composerrequire添加新依賴。 3.配置autoload實現類自動加載。 4.使用composerdiagnose檢查項目健康狀況。 5.優化依賴管理:指定包名更新,使用composerdump-autoload-o優化自動加載器,生產環境使用composerinstall--no-d

作曲家和AI:PHP開發中的新可能性作曲家和AI:PHP開發中的新可能性Apr 19, 2025 am 12:03 AM

AI與Composer結合可提升PHP開發效率和安全性。具體體現在:1.依賴解析和優化:AI可預測依賴關係,減少衝突。 2.自動化安全檢查:AI能識別安全漏洞,建議更新。 3.代碼生成和優化:AI能自動生成和優化相關代碼。

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脫衣器

Video Face Swap

Video Face Swap

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

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

EditPlus 中文破解版

EditPlus 中文破解版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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