下面由composer教程欄目給大家介紹說明包和倉庫的概念,希望對(duì)需要的朋友有所幫助!
概念
在我們了解已存在的不同類型的倉庫之前,我們需要了解 Composer 構(gòu)建的一些基本概念。
包
Composer 是一個(gè)依賴管理器。 它能夠?qū)惭b在本地。一個(gè)包的本質(zhì)是一個(gè)包括了一系列源文件的目錄。一般的,一個(gè)包中的文件主要是一堆 PHP 代碼文件,但理論上一個(gè)包里面可以包括任意類型的文件,其中一個(gè)文件就是包中用于描述包的名稱和版本信息的文件。名稱和版本是包的唯一標(biāo)識(shí)。
事實(shí)上,Composer 的內(nèi)部認(rèn)為每一個(gè)版本都是獨(dú)立的包,雖然對(duì)于使用 Composer 管理依賴時(shí)這并不重要,但對(duì)于你想要改變包中的一些東西時(shí)或做一些自定義選項(xiàng)時(shí),這些內(nèi)容則十分重要。
此外,除了名稱和版本信息,還有一些其他用用的元數(shù)據(jù)。其中與安裝包時(shí)最緊密相關(guān)的信息就是包來源的定義,這個(gè)是用于告知從何處去取得包的實(shí)際內(nèi)容。來源分兩種:dist 和 source。
Dist: dist 來源的包是一個(gè)打包后的分發(fā)版。通常是一個(gè)已發(fā)布的穩(wěn)定版本。
Source: source 來源的包往往用于開發(fā)。通常是一個(gè)源代碼倉庫,例如 git。當(dāng)你想要修改下載的包,你可以選擇使用該來源。
包可以提供任意一種來源選項(xiàng),或者二者皆有。最終選定哪一個(gè)取決于某一些因素,例如用戶提供的指定選項(xiàng)、包的穩(wěn)定性標(biāo)識(shí)。
倉庫
倉庫是包的來源。它提供了一個(gè)包和版本的列表。Composer 通過查閱你配置中定義的所有倉庫源里去尋找你項(xiàng)目中所需要的包并將其引入。
Composer 將 Packagist 作為全局默認(rèn)查找的倉庫。當(dāng)然你也可以通過在你的項(xiàng)目配置文件 —— composer.json 中添加額外的倉庫源配置。
所有對(duì)于倉庫源的配置信息僅在源包( root package )中有效,而該包中所依賴的包內(nèi)對(duì)于倉庫源的配置信息則不會(huì)再被 Composer 作為查找包的目標(biāo)倉庫的依據(jù)。你可以閱讀 FAQ entry 了解