站長資訊網
最全最豐富的資訊網站

composer.json文件詳解

在當前主流的PHP框架中我們都會發現一個名為composer.json的文件,在下載的composer包中就可以看到composer.json文件,下面由composer使用教程欄目為大家介紹composer.json文件的作用、屬性及各個屬性的作用。

composer.json文件詳解

作用:

composer.json文件定義了您當前項目的依賴項,以及依賴項的一些相關信息

常見屬性說明:

1:name

表示包的名稱,由作者名稱和項目名稱組成,使用 / 分割

例如:

yiisoft/yii2-app-basic

包名稱可以包含任何字符,包括空格,并且不區分大小寫 ( yiisoft/yii2-app-basic 和 Yiisoft/Yii2-app-basic 會被認為是同一個包)。為了簡化安裝,建議定義一個不包含非字母數字字符或空格的短名稱

name這個屬性是composer.json文件的必要屬性

2:description

表示包的簡短描述,通常這是一行介紹就行

description 這個屬性是composer.json文件的必要屬性

3:version

表示包的版本

版本的格式必須遵循 X.Y.Z 或 vX.Y.Z,可選后綴 -dev, -patch ( -p ), -alpha ( -a ), -beta ( -b ) 或 -RC, patch, alpha , beta 和 RC 后綴也可以跟一個數字

例如:

1.0.0

1.0.0-dev

version這個屬性是composer.json 文件的非必須屬性,一般可以省略

4:type

表示包的類型,默認為庫 library

Composer 原生支持以下4種類型:

library: 默認類型,它只需要將文件復制到 vendor 目錄。

project: 當前包是一個項目,而不是一個庫。例如Yii框架中的composer.json文件的type值九尾project

metapackage: 包含需求并將觸發其安裝的空包,但不包含文件,并且不會向系統寫入任何內容。因此這種安裝類型并不需要一個 dist 或 source。

composer-plugin: 一個安裝類型為 composer-plugin 的包,它有一個自定義安裝類型,可以為其它包提供一個 installler

我們也可以定義一個自定義類型

type這個屬性是composer.json文件的非必須屬性

5:keywords

表示一組用于搜索與篩選的與包相關的關鍵字

keywords這個屬性是composer.json文件的非必須屬性

6:homepage

表示項目網站的 URL 地址

homepage這個屬性是composer.json文件的非必須屬性

7:readme

表示README 文檔的絕對路徑

readme這個屬性是composer.json文件的非必須屬性

8:time

表示包的版本發布時間

必須是 YYYY-MM-DD 或者 YYYY-MM-DD HH:MM:SS 格式

time這個屬性是composer.json文件的非必須屬性

9:license

表示包的許可證,可以是一個字符串或者是一個字符串數組

最常見的許可證推薦表示法如下:

Apache-2.0 BSD-2-Clause BSD-3-Clause BSD-4-Clause GPL-2.0-only / GPL-2.0-or-later GPL-3.0-only / GPL-3.0-or-later LGPL-2.1-only / LGPL-2.1-or-later LGPL-3.0-only / LGPL-3.0-or-later MIT

你如果想要知道許可證相關信息可以參考:https://spdx.org/licenses/

license這個屬性是composer.json文件的非必須屬性,但是建議提供此項信息

10:authors

表示包的作者,這是一個對象數組。

每一個作者對象可以包含以下屬性:

name: 作者的名字。通常是真實姓名。

email: 作者的郵件地址。

homepage: 作者個人網站的 URL 地址。

role: 作者在項目中擔任的角色(如:開發者或者譯者)。

例:

"authors": [         {             "name": "huaweichenai",             "email": "243681093@qq.com",             "homepage": "https://www.wj0511.com/",             "role": "Developer"         }     ],

authors這個屬性是composer.json文件的非必須屬性,但是建議提供此項信息

11:support

表示獲取對項目支持的信息對象。

對象信息必須包括以下屬性:

email: 項目支持 email 地址。

issues: 跟蹤問題的 URL 地址。

forum: 論壇 URL 地址。

wiki: Wiki URL 地址。

irc: IRC 聊天頻道地址,as irc://server/channel.

source: 網址瀏覽或下載源。

docs: 文件的 URL 。

rss: RSS 源的 URL 。

例:

"support": {         "issues": "https://github.com/yiisoft/yii2/issues?state=open",         "forum": "http://www.yiiframework.com/forum/",         "wiki": "http://www.yiiframework.com/wiki/",         "irc": "irc://irc.freenode.net/yii",         "source": "https://github.com/yiisoft/yii2"     },

support這個屬性是composer.json文件的非必須屬性

12:require

表示必須安裝的依賴包列表,這些包必須滿足條件,否則不會安裝

例:

"require": {         "yiisoft/yii2": "*"     },

require這個屬性是composer.json文件的非必須屬性

13:require-dev

表示開發或運行測試時的依賴包列表

require-dev這個屬性是composer.json文件的非必須屬性

14:autoload

表示PHP 自動加載的映射

支持 PSR-4 和 PSR-0 自動加載,class 映射 和 files 引用。

推薦使用 PSR-4 規范(添加類時,無需重新生成自動加載映射)

例:

"autoload": {         "psr-4": {             "huaweichenai\discern\": "src"         }     }

表示自動加載當前的src目錄

autoload這個屬性是composer.json文件的非必須屬性

15:minimum-stability

這個屬性定義了按穩定性過濾包的默認值,默認為stable。所以如果你依賴dev 包,你應該在你的文件中指定。

所有包都將根據穩定性檢出相應的版本,那些低于 minimum-stability 設置的版本將被自動忽略。

minimum-stability這個屬性是composer.json文件的非必須屬性

16:repositories

表示使用自定義的安裝源

Composer 默認只使用 packagist 的安裝源。通過定義 repositories 你可以從任何其他地方獲取包

例:

"repositories": {         "0": {             "type": "composer",             "url": "https://asset-packagist.org"         },         "packagist": {             "type": "composer",             "url": "https://packagist.phpcomposer.com"         }     }

repositories 這個屬性是composer.json文件的非必須屬性

20:config

表示一組配置選項。它僅用于項目

config屬性向有很多的屬性,了解config下面的相關屬性,參考:https://laravel-china.org/docs/composer/2018/06-config/2087

config屬性中有一個常見的屬性

process-timeout:請求過程超時設置

config 這個屬性是composer.json文件的非必須屬性

21:scripts

表示Composer 允許再安裝過程的各個部分中執行腳本

script相關信息參考:https://laravel-china.org/docs/composer/2018/scripts/2095

例:

"scripts": {             //當項目里有 composer.lock 文件的情況下調用 install 命令后執行         "post-install-cmd": [             "yii\composer\Installer::postInstall"         ],         //當 create-project  命令被執行后執行         "post-create-project-cmd": [             "yii\composer\Installer::postCreateProject",             "yii\composer\Installer::postInstall"         ]     },

scripts 這個屬性是composer.json文件的非必須屬性

22:extra

表示scripts 使用的任意擴展數據

例:

"extra": {         "yii\composer\Installer::postCreateProject": {             "setPermission": [                 {                     "runtime": "0777",                     "web/assets": "0777",                     "yii": "0755"                 }             ]         },         "yii\composer\Installer::postInstall": {             "generateCookieValidationKey": [                 "config/web.php"             ]         }     },

extra這個屬性是composer.json文件的非必須屬性

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产成人综合久久精品下载| 欧洲精品成人免费视频在线观看 | 国产在线观看高清精品| 中文字幕日韩精品一区二区三区| 国产精品青青青高清在线观看| 亚洲AV无码国产精品永久一区| 国产第一福利精品导航| 久久精品国产亚洲av影院| 久久久国产成人精品| 久久精品9988| 国内精品久久久久久99蜜桃| 久久精品亚洲乱码伦伦中文| 亚洲国产成人精品91久久久| 视频一区二区精品的福利| 中日韩精品无码一区二区三区 | www国产亚洲精品久久久日本| 手机看片日韩福利| 无码欧精品亚洲日韩一区夜夜嗨 | 国产午夜精品久久久久九九| 国产成人久久精品麻豆一区| 天天爽夜夜爽8888视频精品| 日韩在线看片免费人成视频播放| 久久久久无码精品亚洲日韩| 国产av无码久久精品| 国产一区二区三区精品久久呦| 日韩精品在线播放| 日韩毛片一区视频免费| 午夜一级日韩精品制服诱惑我们这边 | 国产亚洲精品成人久久网站| 国产精品2018| 四虎永久在线精品视频| 日韩特级黄色毛片| 竹菊影视欧美日韩一区二区三区四区五区 | 日韩经典午夜福利发布| 亚洲日韩精品A∨片无码加勒比| 日韩中文字幕电影| 精品一区精品二区| 国产福利电影一区二区三区,亚洲国模精品一区 | 国产麻豆精品一区二区三区 | www国产亚洲精品久久久日本| 亚洲精品无码日韩国产不卡?V|