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

        composer.json文件詳解

        在當(dāng)前主流的PHP框架中我們都會發(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 會被認(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ā)其安裝的空包,但不包含文件,并且不會向系統(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 文檔的絕對路徑

        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è)對象數(shù)組。

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

        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

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

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

        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

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

        例:

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

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

        13:require-dev

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

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

        14:autoload

        表示PHP 自動加載的映射

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

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

        例:

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

        表示自動加載當(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è)置的版本將被自動忽略。

        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號-2    滬公網(wǎng)安備31011702889846號
        主站蜘蛛池模板: 无码精品国产VA在线观看DVD| 精品成人免费自拍视频| 55夜色66夜色国产精品视频| 欧美人与动牲交a欧美精品| 五月花精品视频在线观看| 中文字幕在线亚洲精品| 国产精品免费看久久久香蕉| 国产精品亚洲精品观看不卡| 日韩精品一区二区三区中文| 久久国产成人亚洲精品影院 | 中文字幕无码精品亚洲资源网久久 | 欧美成人精品高清视频在线观看| 久久亚洲欧美日本精品| 国产精品无码一区二区三区电影| 亚洲精品亚洲人成人网| 亚洲高清国产拍精品青青草原| 国产精品爽爽ⅴa在线观看| 四虎永久在线精品884aa下载| 成人国产精品一区二区网站| 精品无码一区在线观看| 亚洲处破女AV日韩精品| 尤物TV国产精品看片在线| 国产精品免费久久久久久久久| 精品亚洲成a人片在线观看 | 精品无码一区在线观看| 无码精品久久久天天影视 | 中文字幕精品一区影音先锋| 国产成人精品高清在线观看99 | 老司机67194精品线观看| 夜夜爽一区二区三区精品| 精品亚洲视频在线观看| 久久精品国产99久久丝袜 | 国产精品无码无卡无需播放器| 99久免费精品视频在线观看| 99精品影院| 国产久爱免费精品视频| 精品国产一区二区三区2021| 精品久久久久久久久久中文字幕| 国产微拍精品一区二区| 久久久久久久久久久免费精品| 久久青青草原精品国产不卡|