Composer配置文件composer.json詳解

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

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類型redis

   格式:"autoload":json

                             {數組

                                    "psr-0":composer

                                              {ide

                                                       "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":網站

                               {ui

                                       "psr-4":spa

                                                 {

                                                          "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":"ss@ss.com","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!"} 用於說明可選的,用於加強功能的包及說明。

相關文章
相關標籤/搜索