Maison outils de développement composer Explication détaillée du fichier composer.json

Explication détaillée du fichier composer.json

Aug 03, 2019 pm 05:11 PM
composer json

Dans le framework PHP grand public actuel, nous trouverons un fichier nommé composer.json. Vous pouvez voir le fichier composer.json dans le package composer téléchargé. Voici la colonne tutoriel d'utilisation du compositeur : Nous. présentera la fonction, les propriétés et les fonctions de chaque propriété du fichier composer.json.

Explication détaillée du fichier composer.json

Fonction :

Le fichier composer.json définit les dépendances de votre projet actuel, ainsi que quelques informations associées sur les dépendances

Description de l'attribut commun :

1 : nom

représente le nom du package, qui se compose du nom de l'auteur et du nom du projet, séparés par

Par exemple. :

yiisoft/ yii2-app-basic

Le nom du package peut contenir n'importe quel caractère, y compris des espaces, et n'est pas sensible à la casse (yiisoft/yii2-app-basic et Yiisoft/Yii2-app -basic sera considéré comme le même package). Pour simplifier l'installation, il est recommandé de définir un nom court

nom qui ne contient pas de caractères non alphanumériques ni d'espaces. Cet attribut est un attribut obligatoire du fichier composer.json

2 : description

Représente une brève description du package, il s'agit généralement d'une introduction sur une ligne

description Cet attribut est un attribut nécessaire du fichier composer.json

3. : version

indique la version du package

Le format de la version doit suivre X.Y.Z ou vX.Y.Z, suffixe optionnel -dev, -patch (-p), -alpha (-a ), -beta (-b) ou -RC, patch, alpha, beta et le suffixe RC peuvent également être suivis d'un chiffre

Par exemple :

1.0.0

1.0.0-dev

version Cet attribut est le fichier composer.json Attributs non essentiels, peuvent généralement être omis

4 : type

indique le type de package , la valeur par défaut est bibliothèque

Composer prend en charge nativement les 4 types suivants :

bibliothèque : type par défaut, il lui suffit de copier les fichiers dans le répertoire du fournisseur.

projet : Le package actuel est un projet, pas une bibliothèque. Par exemple, la valeur de type du fichier composer.json dans le framework Yii est project

metapackage : un package vide qui contient les exigences et déclenchera son installation, mais ne contient pas de fichiers et n'écrira rien dans le système. Par conséquent, ce type d’installation ne nécessite ni dist ni source.

composer-plugin : Un package avec le type d'installation composer-plugin Il a un type d'installation personnalisé et peut fournir un installateur pour d'autres packages

Nous pouvons également définir un type personnalisé

L'attribut type est un attribut non essentiel du fichier composer.json

5 : mots-clés

représente un ensemble de mots-clés liés au package utilisé pour la recherche et le filtrage

L'attribut mots-clés est un attribut non essentiel du fichier composer.json

6 : page d'accueil

représente l'adresse URL du site du projet

L'attribut page d'accueil est le fichier composer.json L'attribut facultatif

7 : readme

représente le chemin absolu du document README

L'attribut readme est l'attribut facultatif du fichier composer.json

8 : heure

indique l'heure de sortie de la version du package

doit être au format AAAA-MM-JJ ou AAAA-MM-JJ HH:MM:SS

Cet attribut de time est composer Attributs optionnels du fichier .json

9 : licence

représente la licence du package, qui peut être une chaîne ou un tableau de chaînes

La licence la plus courante La notation recommandée est la suivante :

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
Copier après la connexion

Si vous souhaitez connaître les informations relatives à la licence, vous pouvez vous référer à : https://spdx.org/licenses/

L'attribut licence est une propriété non spécifique du fichier composer.json Attribut obligatoire, mais il est recommandé de fournir cette information

10 : auteurs

représente l'auteur de. le package, qui est un tableau d’objets.

Chaque objet auteur peut contenir les attributs suivants :

name : Le nom de l'auteur. Généralement le vrai nom.

email : L’adresse email de l’auteur.

page d’accueil : adresse URL du site personnel de l’auteur.

rôle : le rôle que l'auteur joue dans le projet (comme développeur ou traducteur).

Exemple :

"authors": [
        {
            "name": "huaweichenai",
            "email": "243681093@qq.com",
            "homepage": "https://www.wj0511.com/",
            "role": "Developer"
        }
    ],
Copier après la connexion

L'attribut auteurs est un attribut non essentiel du fichier composer.json, mais il est recommandé de fournir cette information

11 : support

signifie Obtenir des objets d'information prenant en charge le projet.

Les informations sur l'objet doivent inclure les attributs suivants :

email : le projet prend en charge les adresses e-mail.

problèmes : adresse URL pour le suivi des problèmes.

forum : Adresse URL du forum.

wiki : Adresse URL du wiki.

irc : adresse du canal de discussion IRC, comme irc://server/channel.

source : URL de navigation ou source de téléchargement.

docs : URL du fichier.

rss : URL du flux RSS.

Exemple :

"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"
    },
Copier après la connexion

L'attribut support est un attribut non essentiel du fichier composer.json

12 : require

signifie que c'est obligatoire Liste des packages dépendants installés. Ces packages doivent remplir les conditions, sinon ils ne seront pas installés

Exemple :

"require": {
        "yiisoft/yii2": "*"
    },
Copier après la connexion

require Cet attribut est un attribut non essentiel de. le fichier composer.json

13 :require-dev

Indique la liste des packages dépendants lors du développement ou de l'exécution de tests

L'attribut require-dev est un attribut non essentiel du fichier composer.json

14 : autoload

Représente le mappage de chargement automatique PHP

Prend en charge le chargement automatique PSR-4 et PSR-0, le mappage de classes et les références de fichiers .

推荐使用 PSR-4 规范(添加类时,无需重新生成自动加载映射)

例:

"autoload": {
        "psr-4": {
            "huaweichenai\\discern\\": "src"
        }
    }
Copier après la connexion

表示自动加载当前的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"
        }
    }
Copier après la connexion

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"
        ]
    },
Copier après la connexion

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"
            ]
        }
    },
Copier après la connexion

extra这个属性是composer.json文件的非必须属性

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Résoudre les problèmes de mise en cache dans Craft CMS: Utilisation du plug-in Wiejeben / Craft-Laravel-MIX Résoudre les problèmes de mise en cache dans Craft CMS: Utilisation du plug-in Wiejeben / Craft-Laravel-MIX Apr 18, 2025 am 09:24 AM

Lorsque vous développez des sites Web à l'aide de CRAFTCMS, vous rencontrez souvent des problèmes de mise en cache de fichiers de ressources, en particulier lorsque vous mettez fréquemment à mettre à jour les fichiers CSS et JavaScript, les anciennes versions des fichiers peuvent toujours être mises en cache par le navigateur, ce qui fait que les utilisateurs ne voient pas les derniers changements de temps. Ce problème affecte non seulement l'expérience utilisateur, mais augmente également la difficulté du développement et du débogage. Récemment, j'ai rencontré des problèmes similaires dans mon projet, et après une exploration, j'ai trouvé le plugin wiejeben / artist-laravel-mix, qui a parfaitement résolu mon problème de mise en cache.

Comment construire rapidement Laravelcms avec Composer: MKI-LABS / ESPRESSO Expérience pratique Comment construire rapidement Laravelcms avec Composer: MKI-LABS / ESPRESSO Expérience pratique Apr 18, 2025 am 07:36 AM

J'ai rencontré un problème délicat lors du développement d'un nouveau projet Laravel: comment créer rapidement un système de gestion de contenu entièrement fonctionnel et facile à gérer (CMS). J'ai essayé plusieurs solutions, mais toutes ont abandonné en raison d'une configuration complexe et d'une maintenance gênante. Jusqu'à ce que je découvre le package Laravelcms MKI-LABS / ESPRESSO, qui non seulement simple à installer, mais fournit également des fonctions puissantes et une interface de gestion intuitive, ce qui a complètement résolu mon problème.

Expérience pratique pour créer des interfaces de ligne de commande efficaces à l'aide de la bibliothèque Symfony / Console Expérience pratique pour créer des interfaces de ligne de commande efficaces à l'aide de la bibliothèque Symfony / Console Apr 18, 2025 am 07:30 AM

Dans le développement de projets, il est souvent nécessaire de créer des outils de ligne de commande pour simplifier les tâches quotidiennes ou automatiser les processus. Cependant, la création d'une interface de ligne de commande qui est belle et facile à tester n'est pas facile. Récemment, j'ai rencontré ce problème lors du développement d'un projet qui nécessite des outils de ligne de commande. Après une certaine exploration, j'ai trouvé la bibliothèque Symfony / Console, qui simplifie considérablement le processus de création des interfaces de ligne de commande.

Utilisation du compositeur pour résoudre l'injection de dépendance: application de l'interface de conteneur PSR-11 Utilisation du compositeur pour résoudre l'injection de dépendance: application de l'interface de conteneur PSR-11 Apr 18, 2025 am 07:39 AM

J'ai rencontré un problème commun mais délicat lors du développement d'un grand projet PHP: comment gérer et injecter efficacement les dépendances. Initialement, j'ai essayé d'utiliser des variables globales et une injection manuelle, mais cela a non seulement augmenté la complexité du code, il a également conduit facilement à des erreurs. Enfin, j'ai résolu avec succès ce problème en utilisant l'interface de conteneur PSR-11 et avec la puissance du compositeur.

Comment utiliser le compositeur pour résoudre le problème du traitement par lots des données dans le cadre YII Comment utiliser le compositeur pour résoudre le problème du traitement par lots des données dans le cadre YII Apr 18, 2025 am 07:54 AM

Lorsque vous développez des projets de framework YII, vous rencontrez souvent des situations où vous devez obtenir une grande quantité de données de la base de données. Si des mesures appropriées ne sont pas prises, l'obtention directement de toutes les données peut entraîner un débordement de mémoire et affecter les performances du programme. Récemment, lorsque j'avais affaire à un projet sur une grande plate-forme de commerce électronique, j'ai rencontré ce problème. Après quelques recherches et essais, j'ai finalement résolu le problème par le biais de la bibliothèque d'extension de Pavle / Yii-Batch-Result.

Comment utiliser le compositeur pour résoudre les problèmes de demande HTTP: un guide pratique de la bibliothèque Yiche / HTTP Comment utiliser le compositeur pour résoudre les problèmes de demande HTTP: un guide pratique de la bibliothèque Yiche / HTTP Apr 18, 2025 am 08:06 AM

Pendant le développement, des demandes HTTP sont souvent nécessaires, ce qui peut être d'obtenir des données, d'envoyer des données ou d'interagir avec des API externes. Cependant, face à des environnements de réseau complexes et à la modification des exigences de demande, comment gérer efficacement les demandes HTTP devient un défi. J'ai rencontré un problème dans un projet: je dois envoyer fréquemment des demandes à différentes API et enregistrer les demandes pour faciliter le débogage et l'analyse ultérieures. Après avoir essayé plusieurs méthodes, j'ai découvert la bibliothèque Yiche / HTTP. Il simplifie non seulement le traitement des demandes HTTP, mais fournit également des fonctions de journalisation dynamique, améliorant considérablement l'efficacité de développement.

Utilisation et alternatives à la plate-forme de traduction Otrance Utilisation et alternatives à la plate-forme de traduction Otrance Apr 18, 2025 am 08:45 AM

Un support multilingue est souvent requis dans le développement de projets, et Otance était autrefois une solution très populaire. Cependant, j'ai récemment constaté que le projet Otrance n'est plus maintenu et mis à jour, ce qui m'a obligé à trouver de nouvelles alternatives pour répondre aux besoins du projet. Heureusement, Composer fournit un moyen pratique de gérer et d'installer d'autres plates-formes de traduction.

Améliorer l'accessibilité du site Web de Silverstripe: Installation et utilisation du module Flying Focus Améliorer l'accessibilité du site Web de Silverstripe: Installation et utilisation du module Flying Focus Apr 18, 2025 am 08:09 AM

Lors du développement d'un projet de site Web du gouvernement, j'ai rencontré un problème difficile: comment améliorer l'accessibilité du site Web pour répondre aux besoins des différents utilisateurs, en particulier pour les utilisateurs malvoyants, la navigation et l'exploitation du site Web peuvent être très difficiles. Après avoir essayé plusieurs méthodes, j'ai trouvé une bibliothèque JavaScript appelée FlyingFocus qui améliore considérablement l'accessibilité du site Web. Cependant, l'intégrer dans le site Web de Silverstripe est un défi. Heureusement, j'ai trouvé le module Dia-NZ / Silverstripe-Flying-Focus, qui a simplifié le processus d'intégration de FlyingFocus et a résolu mon puzzle.

See all articles