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

Commandes courantes et contraintes de version de Composer

Aug 20, 2019 pm 02:36 PM
composer

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!

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Exemple d'introduction de Laravel Exemple d'introduction de Laravel Apr 18, 2025 pm 12:45 PM

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

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 simplifier le marketing par e-mail avec le compositeur: les pratiques d'application de Duwa.io Comment simplifier le marketing par e-mail avec le compositeur: les pratiques d'application de Duwa.io Apr 18, 2025 am 11:27 AM

J'ai un problème délicat lors d'une campagne de marketing par courrier: comment créer et envoyer efficacement le courrier au format HTML. L'approche traditionnelle consiste à écrire du code manuellement et à envoyer des e-mails à l'aide d'un serveur SMTP, mais cela prend non seulement du temps, mais aussi des erreurs. Après avoir essayé plusieurs solutions, j'ai découvert Duwa.io, un Restapi simple et facile à utiliser qui m'aide à créer et à envoyer un courrier HTML rapidement. Pour simplifier davantage le processus de développement, j'ai décidé d'utiliser Composer pour installer et gérer la bibliothèque PHP de Duwa.io - Captaindoe / Duwa.

Améliorer l'efficacité de la sérialisation de l'entité de la doctrine: application de sidus / doctrine serializer-bundle Améliorer l'efficacité de la sérialisation de l'entité de la doctrine: application de sidus / doctrine serializer-bundle Apr 18, 2025 am 11:42 AM

J'ai eu un problème difficile lorsque je travaille sur un projet avec un grand nombre d'entités de doctrine: chaque fois que l'entité est sérialisée et désérialisée, la performance devient très inefficace, entraînant une augmentation significative du temps de réponse du système. J'ai essayé plusieurs méthodes d'optimisation, mais cela ne fonctionne pas bien. Heureusement, en utilisant le SIDUS / Doctrine-Serializer-Bundle, j'ai résolu avec succès ce problème, améliorant considérablement les performances du projet.

Utilisez le compositeur pour résoudre le dilemme des systèmes de recommandation: Andres-Montanez / Recommandations-Bundle Utilisez le compositeur pour résoudre le dilemme des systèmes de recommandation: Andres-Montanez / Recommandations-Bundle Apr 18, 2025 am 11:48 AM

Lors du développement d'un site Web de commerce électronique, j'ai rencontré un problème difficile: comment fournir aux utilisateurs des recommandations de produits personnalisées. Au départ, j'ai essayé des algorithmes de recommandation simples, mais les résultats n'étaient pas idéaux et la satisfaction des utilisateurs a également été affectée. Afin d'améliorer la précision et l'efficacité du système de recommandation, j'ai décidé d'adopter une solution plus professionnelle. Enfin, j'ai installé Andres-Montanez / Recommandations-Bundle via Composer, ce qui a non seulement résolu mon problème, mais a également considérablement amélioré les performances du système de recommandation. Vous pouvez apprendre le compositeur via l'adresse suivante:

Comment afficher le numéro de version de Laravel? Comment afficher le numéro de version de Laravel Comment afficher le numéro de version de Laravel? Comment afficher le numéro de version de Laravel Apr 18, 2025 pm 01:00 PM

Le Framework Laravel a des méthodes intégrées pour afficher facilement son numéro de version pour répondre aux différents besoins des développeurs. Cet article explorera ces méthodes, y compris l'utilisation de l'outil de ligne de commande Composer, l'accès à des fichiers .env ou l'obtention d'informations de version via le code PHP. Ces méthodes sont essentielles pour maintenir et gérer le versioning d'applications Laravel.

Comment construire rapidement des modèles de projet avancés Fecmall à l'aide du compositeur Comment construire rapidement des modèles de projet avancés Fecmall à l'aide du compositeur Apr 18, 2025 am 11:45 AM

Lors du développement d'une plate-forme de commerce électronique, il est crucial de choisir le bon cadre et les bons outils. Récemment, lorsque j'essayais de créer un site Web de commerce électronique riche en fonctionnalités, j'ai rencontré un problème difficile: comment créer rapidement une plate-forme de commerce électronique évolutive et entièrement fonctionnelle. J'ai essayé plusieurs solutions et j'ai fini par choisir le modèle de projet avancé de FECMALL (FECMALL / FBBCBASE-APP-ADVANDAD). En utilisant le compositeur, ce processus devient très simple et efficace. Le compositeur peut être appris par l'adresse suivante: Adresse d'apprentissage

Code d'installation de Laravel Code d'installation de Laravel Apr 18, 2025 pm 12:30 PM

Pour installer Laravel, suivez ces étapes dans Séquence: Installer Composer (pour MacOS / Linux et Windows) Installez Laravel Installer Créer une nouvelle application d'accès au service de démarrage du projet (URL: http://127.0.0.1:8000) Configurer la connexion de la base de données (si nécessaire)

See all articles