ホームページ >開発ツール >composer >Composer.json ファイルの詳細な説明

Composer.json ファイルの詳細な説明

藏色散人
藏色散人転載
2019-08-03 17:11:5713050ブラウズ

現在の主流の PHP フレームワークでは、composer.json という名前のファイルが見つかります。composer.json ファイルは、ダウンロードした Composer パッケージ内にあります。次の列は 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

パッケージの短い説明を示します。通常、これは 1 行の紹介です。

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: デフォルトのタイプ。ファイルをベンダー ディレクトリにコピーするだけで済みます。

project: 現在のパッケージはプロジェクトであり、ライブラリではありません。たとえば、Yii フレームワークのcomposer.json ファイルの type 値は project

metapackage です。要件を含み、インストールをトリガーする空のパッケージですが、ファイルは含まれておらず、ファイルには何も書き込まれません。システム。したがって、このタイプのインストールには dist やsource は必要ありません。

composer-plugin: インストール タイプ Composer-plugin のパッケージ。カスタム インストール タイプがあり、他のパッケージのインストーラーを提供できます。

カスタム タイプを定義することもできます

type 属性は、composer.json ファイルの必須ではない属性です。

5: キーワード

検索とフィルタリングに使用されるパッケージ関連のキーワードのセットを表します

keywords この属性は、composer.json ファイルの必須ではない属性です。

6:homepage

プロジェクト Web サイトの URL アドレスを表します。

Homepage この属性は、 combos.json ファイルの非必須属性

7: readme

は README ドキュメントの絶対パスを表します

readme 属性は、composer の非必須属性です.json ファイル

8 : time

はパッケージのバージョン リリース時刻を示します

は YYYY-MM-DD または YYYY-MM-DD HH:MM:SS である必要がありますformat

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: 著者の電子メール アドレス。

ホームページ: 著者の個人 Web サイトの URL アドレス。

役割: プロジェクト内で作成者が果たす役割 (開発者や翻訳者など)。

例:

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

authors 属性は、composer.json ファイルの必須属性ではありませんが、この情報を提供することをお勧めします

11: support

は、プロジェクトをサポートする情報オブジェクトを取得することを意味します。

オブジェクト情報には次の属性が含まれている必要があります:

電子メール: プロジェクトは電子メール アドレスをサポートします。

issues: 追跡問題の URL アドレス。

フォーラム: フォーラムの URL アドレス。

wiki: Wiki の URL アドレス。

irc: IRC チャット チャネル アドレス (irc://server/channel.

など) ソース: URL 参照またはダウンロード ソース。

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この属性は、 combos.json ファイル

13 :require-dev

開発またはテスト実行時の依存パッケージのリストを示します

require-dev この属性は、必須ではない属性です。 combos.json ファイル

##14: autoload

PHP 自動読み込みマッピングを示します

PSR-4 および PSR-0 の自動読み込み、クラス マッピング、およびファイル参照をサポートします。

推荐使用 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文件的非必须属性

以上がComposer.json ファイルの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はwj0511で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。