Maison >outils de développement >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
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 !
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 :
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.
ProcessusPrésentons plusieurs quotidiennement processus de production pour faciliter la compréhension de chacun.
Processus 1 : nouveau processus de projetCré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 existantsAprè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 projetUtilisez 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.lockLe 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.
À propos de la méthode d'installation du pack d'extensionEnsuite, 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."
Exé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!