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

        composer.json文件詳解

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

        composer.json文件詳解

        作用:

        composer.json文件定義了您當(dāng)前項(xiàng)目的依賴項(xiàng),以及依賴項(xiàng)的一些相關(guān)信息

        常見屬性說明:

        1:name

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

        例如:

        yiisoft/yii2-app-basic

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

        name這個(gè)屬性是composer.json文件的必要屬性

        2:description

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

        description 這個(gè)屬性是composer.json文件的必要屬性

        3:version

        表示包的版本

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

        例如:

        1.0.0

        1.0.0-dev

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

        4:type

        表示包的類型,默認(rèn)為庫 library

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

        library: 默認(rèn)類型,它只需要將文件復(fù)制到 vendor 目錄。

        project: 當(dāng)前包是一個(gè)項(xiàng)目,而不是一個(gè)庫。例如Yii框架中的composer.json文件的type值九尾project

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

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

        我們也可以定義一個(gè)自定義類型

        type這個(gè)屬性是composer.json文件的非必須屬性

        5:keywords

        表示一組用于搜索與篩選的與包相關(guān)的關(guān)鍵字

        keywords這個(gè)屬性是composer.json文件的非必須屬性

        6:homepage

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

        homepage這個(gè)屬性是composer.json文件的非必須屬性

        7:readme

        表示README 文檔的絕對(duì)路徑

        readme這個(gè)屬性是composer.json文件的非必須屬性

        8:time

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

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

        time這個(gè)屬性是composer.json文件的非必須屬性

        9:license

        表示包的許可證,可以是一個(gè)字符串或者是一個(gè)字符串?dāng)?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

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

        license這個(gè)屬性是composer.json文件的非必須屬性,但是建議提供此項(xiàng)信息

        10:authors

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

        每一個(gè)作者對(duì)象可以包含以下屬性:

        name: 作者的名字。通常是真實(shí)姓名。

        email: 作者的郵件地址。

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

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

        例:

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

        authors這個(gè)屬性是composer.json文件的非必須屬性,但是建議提供此項(xiàng)信息

        11:support

        表示獲取對(duì)項(xiàng)目支持的信息對(duì)象。

        對(duì)象信息必須包括以下屬性:

        email: 項(xiàng)目支持 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這個(gè)屬性是composer.json文件的非必須屬性

        12:require

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

        例:

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

        require這個(gè)屬性是composer.json文件的非必須屬性

        13:require-dev

        表示開發(fā)或運(yùn)行測試時(shí)的依賴包列表

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

        14:autoload

        表示PHP 自動(dòng)加載的映射

        支持 PSR-4 和 PSR-0 自動(dòng)加載,class 映射 和 files 引用。

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

        例:

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

        表示自動(dòng)加載當(dāng)前的src目錄

        autoload這個(gè)屬性是composer.json文件的非必須屬性

        15:minimum-stability

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

        所有包都將根據(jù)穩(wěn)定性檢出相應(yīng)的版本,那些低于 minimum-stability 設(shè)置的版本將被自動(dòng)忽略。

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

        16:repositories

        表示使用自定義的安裝源

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

        例:

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

        repositories 這個(gè)屬性是composer.json文件的非必須屬性

        20:config

        表示一組配置選項(xiàng)。它僅用于項(xiàng)目

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

        config屬性中有一個(gè)常見的屬性

        process-timeout:請求過程超時(shí)設(shè)置

        config 這個(gè)屬性是composer.json文件的非必須屬性

        21:scripts

        表示Composer 允許再安裝過程的各個(gè)部分中執(zhí)行腳本

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

        例:

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

        scripts 這個(gè)屬性是composer.json文件的非必須屬性

        22:extra

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

        例:

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

        extra這個(gè)屬性是composer.json文件的非必須屬性

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 欧美国产日韩精品| 国产亚洲精品免费视频播放| 久久国产成人精品麻豆| 宅男宅女精品国产AV天堂| 亚洲国产成人精品不卡青青草原| 中文字幕精品无码一区二区 | 日韩一区二区三区精品| 久久精品这里热有精品| 国产在线精品无码二区| 野狼第一精品社区| 人妻一区二区三区无码精品一区| 香蕉久久夜色精品国产小说| 国产精品兄妹在线观看麻豆| 亚洲午夜精品久久久久久浪潮| 精品国产一区二区三区2021| 91精品国产高清久久久久久国产嫩草| 69久久精品无码一区二区| 人妻少妇偷人精品无码| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 免费91麻豆精品国产自产在线观看| avtt天堂网久久精品| 久久久精品人妻一区二区三区蜜桃 | 无码精品A∨在线观看| 亚洲爆乳精品无码一区二区| 国产在线精品一区二区三区不卡 | 精品国产AⅤ一区二区三区4区| 国产精品偷伦视频免费观看了 | 91久久精品视频| 97精品人妻一区二区三区香蕉| 欧美精品亚洲精品日韩| 久久国产精品久久久| 久久99国产精品久久久| 久久国产精品-国产精品| 51久久夜色精品国产| 国产成人毛片亚洲精品| 国产精品免费在线播放| 国产精品热久久无码av| 精品国产成人国产在线观看| 欧美成人精品欧美一级乱黄码 | 麻豆精品不卡国产免费看| 国产成人综合久久精品尤物|