1. 程式人生 > >composer.json 檔案作用

composer.json 檔案作用

在工程的根目錄下composer.json所定義的包稱為root包。下面是對Composer配置檔案composer.json中的命令的初步解釋。

1.require    格式為: "require":{"vendor-name/package-name":"version", ...}    名字部分會作為vendor下的路徑進行建立    版本支援精確的版本號,也支援範圍如>=1.0; >=1.0,<2.0; ","作為邏輯與,而"!"作為邏輯或的意思。示例中使用了萬用字元*    版本也支援tag或branch名稱。    類似的有require-dev,前者用於宣告專案釋出版本的依賴包,後者用於宣告專案開發或測試中依賴的包。 2.autoload    composer支援PSR-0,PSR-4,classmap及files包含以支援檔案自動載入。PSR-4為推薦方式。    2.1 Files型別    格式:"autoload":{"files":["path/to/1.php","path/to/2.php",...]}    支援將陣列中的檔案進行自動載入,檔案的路徑相對於專案的根目錄。缺點是麻煩,需要將所有檔案都寫進配置。    2.2 classmap型別    格式:"autoload":{"classmap": ["path/to/src1","path/to/src2",...]}    支援將陣列中的路徑下的檔案進行自動載入。其很方便,但缺點是一旦增加了新檔案,需要執行dump-autoload命令重新生成對映  檔案vendor/composer/autoload_classmap.php。    2.3 psr-0型別    格式:"autoload":

                             {

                                    "psr-0":

                                              {

                                                       "name1\\space\\":["path/",...],                                                         "name2\\space\\":["path2/",...],                                                }                               }     支援將名稱空間對映到路徑。名稱空間結尾的\\不可省略。當執行install或update時,載入資訊會寫入vendor/composer/autoload_namespace.php檔案。如果希望解析指定路徑下的所有名稱空間,則將名稱空間置為空串即可。     需要注意的是對應name2\space\Foo類的類檔案的路徑為path2/name2/space/Foo.php     2.4 psr-4型別     格式:"autoload":

                               {

                                       "psr-4":

                                                 {

                                                          "name1\\space\\":["path/",...],                                                           "name2\\space\\":["path2/",...],                                                  }                                 }      支援將名稱空間對映到路徑。名稱空間結尾的\\不可省略。當執行install或update時,載入資訊會寫入vendor/composer/autoload_psr4.php檔案。如果希望解析指定路徑下的所有名稱空間,則將名稱空間置為空串即可。      需要注意的是對應name2\space\Foo類的類檔案的路徑為path2/space/Foo.php,name2不出現在路徑中。      PSR-4和PSR-0最大的區別是對下劃線(underscore)的定義不同。PSR-4中,在類名中使用下劃線沒有任何特殊含義。而PSR-0則規定類名中的下劃線_會被轉化成目錄分隔符。 3.name 格式:"name":"vendor/package" 如果要釋出一個包,你需要指定包的名字資訊。 4.version 格式:"version":"1.0.2" 如果要釋出一個包,你需要指定包的版本號。版本號的格式為X.Y.Z或vX.Y.Z,其後可以加字尾如-dev,-patch,-alpha,-beta或-RC。除dev外,尾上還可加一個數字,如1.0.0-alpha3。 5.description 格式:"description":"your own description at here!" 如果要釋出一個包,可以指定一個簡短的介紹 6.type 格式:"type":"library" 說明包的型別,支援如下library,project,metapackage,composer-plugin,預設為library 7.keywords 格式:"keywords":["logging","database","redis"] 一個數組的關鍵字,用於搜尋或過濾時使用。 8.homepage 可選的,說明專案的網站地址 9.time/license 說明專案的時間和License,時間格式為YY-MM-DD HH:MM:SS 10.authors 格式:"authors":[ {"name":"ss","email":"

[email protected]","homepage":"","role":""},... ] 用於說明專案的作者資訊,為可選的。 11.support 格式:"support":{"emial":"","issues":"","forum":"","wiki":"","irc":"" } 用於說明專案的支援資訊 12.conflict 用於宣告與本包有衝突的包的版本,使用類似於require。 13.replace 用於宣告需要替換的包,使用類似於require 14.provided 用於說明本包實現了某個包的介面 15.suggest 格式:"suggest":{"vendor/package":"Some description!"} 用於說明可選的,用於增強功能的包及說明。 ---------------------  作者:Tranbook  來源:CSDN  原文:https://blog.csdn.net/pugongyinglhl/article/details/59521275?utm_source=copy