Maison  >  Article  >  outils de développement  >  Explication détaillée de la différence entre composer.josn et composer.lock, ainsi que la différence entre l'installation de Composer et les données de mise à jour de Composer

Explication détaillée de la différence entre composer.josn et composer.lock, ainsi que la différence entre l'installation de Composer et les données de mise à jour de Composer

藏色散人
藏色散人avant
2019-10-16 16:41:083047parcourir

La colonne suivante du tutoriel Composer vous présentera la différence entre composer.josn et composer.lock, ainsi que l'explication détaillée de la différence entre l'installation de Composer et Composer updata. J'espère que cela sera utile aux amis qui en ont besoin !

Explication détaillée de la différence entre composer.josn et composer.lock, ainsi que la différence entre l'installation de Composer et les données de mise à jour de Composer

Description du problème

Nous devons souvent ajouter des packs d'extension à des projets existants, parfois en raison de conseils incorrects dans la documentation. L'image suivante provient de ce document :

Explication détaillée de la différence entre composer.josn et composer.lock, ainsi que la différence entre linstallation de Composer et les données de mise à jour de Composer

composer update Cette commande peut causer d'énormes dommages au projet dans notre logique actuelle.

Parce que la logique de composer update est de mettre à jour tous les packages d'extension vers la dernière version selon les règles de version du package d'extension spécifiées par composer.json. Notez qu'il s'agit de tous les packages d'extension, par exemple, lorsque vous démarrez le. le projet Monolog a été utilisé, et les informations de configuration à cette époque étaient

"monolog/monolog": "1.*",

la version 1.1 de monolog a été installée, et maintenant, plus d'un mois plus tard, monolog est en 1.2. Après avoir exécuté la commande, il est directement mis à jour vers la 1.2. Pour le moment, le projet n'a pas été testé pour la 1.2. La situation est parfois pire que cela, surtout dans. un projet énorme. Si vous n'écrivez pas de tests de couverture complets pour le projet, vous ne saurez pas ce qui ne va pas.

Alors, quelle commande composer faut-il utiliser ? installer, mettre à jour ou exiger ?

Ensuite, nous expliquerons un par un.

Explication simple

installation de composer - S'il existe un fichier composer.lock, installez-le directement, sinon installez le dernier package d'extension et les dépendances de composer.json ; mise à jour - Depuis composer .json installe les derniers packages d'extension et dépendances ;

composer update supplier/package - configurez à partir de composer.json ou le package correspondant, et mettez à jour vers la dernière

composer require ; new/package - ajoutez l'installation new/package, vous pouvez spécifier la version, telle que : composer require new/package ~2.5.

Processus

Présentons plusieurs quotidiennement processus de production pour faciliter la compréhension de chacun.

Processus 1 : nouveau processus de projet

Créez composer.json et ajoutez le package d'extension dont il dépend

Exécutez composer install pour installer l'extension ; package Et générer composer.lock;

Soumettre composer.lock au contrôleur de version de code, tel que : git

Processus 2 : les collaborateurs du projet installent les projets existants

Après avoir cloné le projet, exécutez composer install directement dans le répertoire racine pour installer la version spécifiée du pack d'extension et ses dépendances à partir de composer.lock

Ce processus convient au déploiement d'un environnement de production ; code.

Processus 3 : Ajouter un nouveau package d'extension au projet

Utilisez composer require supplier/package pour ajouter un package d'extension

Soumettre le package mis à jour ; composer.json et composer.lock au contrôleur de version de code, tel que : git;

À propos du fichier composer.lock

Le fichier composer.lock stocke les dépendances de chaque code L'enregistrement de version (voir figure ci-dessous) est soumis au contrôleur de version et utilisé conjointement avec composer install pour garantir la cohérence des versions de code exécutées dans l'environnement de développement et l'environnement de production en ligne de tous les collaborateurs de l'équipe.

Explication détaillée de la différence entre composer.josn et composer.lock, ainsi que la différence entre linstallation de Composer et les données de mise à jour de Composer

À propos de la méthode d'installation du pack d'extension

Ensuite, préparez-vous à ajouter un pack d'extension, installez, mettez à jour, exigez tout trois commandes Il peut être utilisé pour installer des packs d'extension. Lequel est le bon choix ?

La réponse est : utilisez la commande composer require

De plus, après avoir modifié manuellement composer.json pour ajouter le package d'extension, composer update new/package peut être utilisé pour mettre à jour le package d'extension spécifié , qui peut également être installé correctement, mais il n'est pas recommandé d'utiliser cette méthode, car une fois que vous oubliez de finaliser le nom du package d'extension suivant, vous entrerez dans un état de catastrophe, alors ne vous laissez pas de piège.

Les concepts ci-dessus sont assez déroutants pour les novices ou les vétérans. La principale chose à retenir est ce concept :

Pour ajouter de nouvelles extensions au projet original, utilisez la méthode composer require new/package. installer.

Si vous devez ajouter une version

composer require "foo/bar:1.0.0"

Mettre à jour l'extension spécifiée vers la version spécifiée

Parfois, vous avez utilisé auparavant De nouvelles fonctionnalités ont été ajoutées au pack d'extension précédent. Si vous souhaitez mettre à jour ce pack d'extension unique vers une version spécifiée, vous pouvez également utiliser require pour le faire.

Comme dans l'exemple suivant, vous devez mettre à jour "sami/sami": "3.0." vers "sami/sami": "3.2."

Explication détaillée de la différence entre composer.josn et composer.lock, ainsi que la différence entre linstallation de Composer et les données de mise à jour de ComposerExécuter en ligne de commande :

fini!

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer