站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

composer.json文件詳解

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

composer.json文件詳解

作用:

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

常見屬性說明:

1:name

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

例如:

yiisoft/yii2-app-basic

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

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 后綴也可以跟一個數(shù)字

例如:

1.0.0

1.0.0-dev

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

4:type

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

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

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

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

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

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

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

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

5:keywords

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

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

6:homepage

表示項目網(wǎng)站的 URL 地址

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

7:readme

表示README 文檔的絕對路徑

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

8:time

表示包的版本發(fā)布時間

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

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

9:license

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

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

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

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

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

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

email: 作者的郵件地址。

homepage: 作者個人網(wǎng)站的 URL 地址。

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

例:

"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: 網(wǎng)址瀏覽或下載源。

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

表示開發(fā)或運行測試時的依賴包列表

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

14:autoload

表示PHP 自動加載的映射

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

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

例:

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

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

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

15:minimum-stability

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

所有包都將根據(jù)穩(wěn)定性檢出相應的版本,那些低于 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 允許再安裝過程的各個部分中執(zhí)行腳本

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

例:

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

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

22:extra

表示scripts 使用的任意擴展數(shù)據(jù)

例:

"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)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久亚洲精品成人无码网站| 一色屋精品视频在线观看| 日韩精品成人无码专区免费| 亚洲精品综合久久中文字幕| 国产精品白浆在线观看免费| 中文字幕在线久热精品| 亚洲性日韩精品国产一区二区| 日韩免费一区二区三区在线播放| 国产精品成人va在线播放| 精品毛片乱码1区2区3区| 精品动漫一区二区无遮挡| 91国内揄拍国内精品对白不卡| 99re最新地址精品视频| 久久99热66这里只有精品一| 国产精品9999久久久久| 国产伦精品免编号公布| 国产精品99久久久精品无码| 999成人精品视频在线| 国产系列高清精品第一页| 国产乱人伦偷精品视频免观看| 亚洲国产精品无码久久久久久曰| 精品视频在线观看一区二区| 日韩精品一区二区三区老鸦窝| 亚洲av日韩综合一区在线观看| 国产乱子伦精品免费女| 国产愉拍精品视频手机 | 欧美日韩精品乱国产| 中文字幕日韩国产| 亚洲AV日韩AV永久无码下载| 日韩免费在线观看视频| 日韩精品无码免费一区二区三区| 日韩爆乳一区二区无码| 亚洲av日韩综合一区二区三区| 亚洲欧美中文日韩视频| 在线日韩av永久免费观看| 精品免费AV一区二区三区| 精品人妻人人做人人爽夜夜爽| 日本精品久久久久久久久免费| 四虎精品成人免费视频| 国产成人精品免费视频大全| 精品97国产免费人成视频|