Maison > outils de développement > composer > Commandes courantes et contraintes de version de Composer

Commandes courantes et contraintes de version de Composer

藏色散人
Libérer: 2019-08-21 14:50:18
avant
2363 Les gens l'ont consulté

La colonne suivante du tutoriel d'utilisation du compositeur expliquera les commandes de gestion de packages couramment utilisées et comment contraindre les versions de packages. J'espère que cela sera utile aux amis dans le besoin !

Commandes courantes et contraintes de version de Composer

Les commandes communes

exigent une commande

Dans "Tutoriel Composer " a brièvement présenté comment utiliser la commande install pour installer les dépendances. En plus de la commande install, nous pouvons également utiliser la commande require pour installer rapidement une dépendance sans ajouter manuellement les informations de dépendance dans composer.json :

$ composer require monolog/monolog
Using version ^1.19 for monolog/monolog
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing psr/log (1.0.0)
    Downloading: 100%         
 
  - Installing monolog/monolog (1.19.0)
    Downloading: 100%         
 
monolog/monolog suggests installing graylog2/gelf-php (Allow sending log messages to a GrayLog2 server)
......
monolog/monolog suggests installing php-console/php-console (Allow sending log messages to Google Chrome)
Writing lock file
Generating autoload files
Copier après la connexion

Composer trouvera d'abord la version appropriée puis mettra à jour le composer.json Ajoutez les informations pertinentes du package monolog/monolog dans require, puis téléchargez les dépendances pertinentes pour l'installation, et enfin mettez à jour le fichier composer.lock et générez le fichier de chargement automatique PHP.

commande update

Grâce à la commande update, vous pouvez mettre à jour tous les packages du projet, ou certains packages spécifiés.

# 更新所有依赖
$ composer update
 
# 更新指定的包
$ composer update monolog/monolog
 
# 更新指定的多个包
$ composer update monolog/monolog symfony/dependency-injection
 
# 还可以通过通配符匹配包
$ composer update monolog/monolog symfony/*
Copier après la connexion

Il convient de noter que la version que le package peut mettre à niveau sera contrainte par la contrainte de version, et que le package ne sera pas mis à niveau vers une version au-delà de la version contrainte. Par exemple, si la contrainte de version du package dans composer.json est ^1.10 et que la dernière version est 2.0. Ensuite, la commande update ne peut pas mettre à niveau le package vers la version 2.0, mais peut uniquement le mettre à niveau vers la version 1.x. Veuillez consulter l'introduction ci-dessous pour connaître les contraintes de version.

commande Remove

Utilisez la commande Remove pour supprimer un package et ses dépendances (lorsque les dépendances ne sont pas utilisées par d'autres packages) :

$ composer remove monolog/monolog
Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Removing monolog/monolog (1.19.0)
  - Removing psr/log (1.0.0)
Writing lock file
Generating autoload files
Copier après la connexion

commande de recherche

Utilisez la commande de recherche pour rechercher des packages :

$ composer search monolog
monolog/monolog Sends your logs to files, sockets, inboxes, databases and various web services
 
# 如果只是想匹配名称可以使用--only-name选项
$ composer search --only-name monolog
Copier après la connexion

commande show

Utilisez la commande show pour lister Obtenez des informations sur les packages actuellement installés dans le projet :

# 列出所有已经安装的包
$ composer show
 
# 可以通过通配符进行筛选
$ composer show monolog/*
 
# 显示具体某个包的信息
$ composer show monolog/monolog
Copier après la connexion

Ce qui précède est une introduction aux commandes couramment utilisées.

Contraintes de version

Comme mentionné précédemment, nous pouvons spécifier la version du package à télécharger. Par exemple, nous souhaitons télécharger la version 1.19 de monologue. Nous pouvons atteindre l'objectif via le fichier composer.json :

{
    "require": {
        "monolog/monolog": "1.19"
    }
}
Copier après la connexion

puis exécuter la commande install, ou via la commande require :

$ composer require monolog/monolog:1.19
 
# 或者
$ composer require monolog/monolog=1.19
 
# 或者
$composer require monolog/monolog 1.19
Copier après la connexion

En plus de spécifier la version spécifique comme ci-dessus, nous peut également transmettre différentes contraintes pour spécifier la version.

Contraintes de base

Version exacte

Vous pouvez spécifier une version spécifique pour indiquer à Composer de n'installer que cette version. Mais si d’autres dépendances nécessitent d’autres versions, l’installation ou la mise à jour du package finira par échouer et se terminer.

Exemple : 1.0.2

Portée

À l'aide d'opérateurs de comparaison, vous pouvez spécifier la portée d'un package. Ces opérateurs incluent : >, >=, <, <=, !=.

Vous pouvez définir plusieurs plages, utiliser des espaces ou des virgules pour indiquer un ET logique, utiliser des barres verticales doubles || pour indiquer un OU logique. La priorité de AND sera supérieure à ou.

Il convient de noter que l'utilisation d'une plage illimitée peut conduire à l'installation de versions imprévisibles et à une rupture de compatibilité descendante. Il est recommandé d'utiliser l'opérateur trait d'union.

Exemple :

>=1.0
>=1.0 <2.0
>=1.0 <1.1 || >=1.2
Copier après la connexion

Portée (utilisez des tirets)

Une portée avec trait d'union indique la plage de versions incluse, ce qui signifie qu'il doit y avoir une limite. Le côté gauche du trait d’union indique la version >=, tandis que la situation sur le côté droit du trait d’union est un peu plus compliquée. Si la version à droite n'est pas un numéro de version complet, elle sera complétée à l'aide de caractères génériques. Par exemple, 1,0 - 2,0 équivaut à >=1,0,0 <2,1 (2,0 équivaut à 2,0.*), tandis que 1,0,0 - 2,1,0 équivaut à >=1,0,0 <=2,1. 0.

Exemple : 1.0 - 2.0

Caractère générique

Vous pouvez utiliser des caractères génériques pour définir des versions. 1.0.* équivaut à >=1.0 <1.1.

Exemple : 1.0.*

Prochains opérateurs de version importants

tilde~

Passons d'abord par le dos. L'exemple explique l'utilisation de l'opérateur ~ : ~1.2 est équivalent à >=1.2 <2.0.0 et ~1.2.3 est équivalent à >=1.2.3 <1.3.0. Cette méthode de contrainte de version est très pratique pour les projets qui utilisent le versionnement sémantique comme norme de numéro de version. Par exemple, ~1.2 définit le plus petit numéro de version mineure, et vous pouvez ensuite mettre à niveau n'importe quelle version inférieure à 2.0 sans problème, car selon la définition de version de Semantic Versioning, les mises à niveau de versions mineures ne devraient pas avoir de problèmes de compatibilité. En termes simples, ~ définit la version minimale et permet de mettre à niveau le dernier chiffre du numéro de version (si vous ne comprenez pas, veuillez revoir l'exemple précédent).

Exemple : ~1.2

Il est à noter que si ~ agit sur le numéro de version majeure, tel que ~1, selon la déclaration ci-dessus, Composer peut installer des versions majeures après la version 1, mais en fait, ~1 sera traité comme ~1.0, et seules les versions mineures pourront être ajoutées, pas les versions majeures.

Numéro Zheyin^

^操作符的行为跟Semantic Versioning有比较大的关联,它允许升级版本到安全的版本。例如,^1.2.3相当于>=1.2.3 <2.0.0,因为在2.0版本前的版本应该都没有兼容性的问题。而对于1.0之前的版本,这种约束方式也考虑到了安全问题,例如^0.3会被当作>=0.3.0 <0.4.0对待。

例子:^1.2.3

版本稳定性

如果你没有显式的指定版本的稳定性,Composer会根据使用的操作符,默认在内部指定为-dev或者-stable。例如:

Commandes courantes et contraintes de version de Composer

如果你想指定版本只要稳定版本,你可以在版本后面添加后缀-stable。

minimum-stability 配置项定义了包在选择版本时对稳定性的选择的默认行为。默认是stable。它的值如下(按照稳定性排序):dev,alpha,beta,RC和stable。除了修改这个配置去修改这个默认行为,我们还可以通过稳定性标识(例如@stable和@dev)来安装一个相比于默认配置不同稳定性的版本。例如:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}
Copier après la connexion

以上是版本约束的介绍。

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!

Étiquettes associées:
source:cuiqingcai
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal