Maison >outils de développement >composer >Introduction aux commandes composer : installation et mise à jour et leurs différences
composer est un outil de gestion des dépendances pour php. Il vous permet de déclarer les bibliothèques de code dont dépend votre projet et il les installera pour vous dans votre projet.
Cependant, les novices ne savent peut-être pas comment les "installer".
Certaines réponses sur Internet disent composer install, et d'autres disent composer update, et les deux semblent être capables de télécharger et d'installer les dépendances avec succès. Alors, quelle est la différence entre elles ?
Recommandations associées : "tutoriel composer"
La première chose à comprendre est que toutes les dépendances sont définies dans composer.json , quelques usages de base et des exemples sont donnés dans le manuel. Vous avez peut-être remarqué que lorsque nous spécifions un numéro de version, nous ne spécifions pas nécessairement une version exacte. Il peut alors arriver que pour le même composer.json, les fichiers de dépendances que nous extrayons à différents moments soient différents (car composer extraira la dernière dépendance lorsque les conditions seront remplies), ce qui entraînera des circonstances anormales.
La mise à jour et l'installation de Composer semblent résoudre ce problème.
Lorsque vous exécutez composer update, composer lira les dépendances spécifiées dans composer.json, les analysera et extraira la dernière version des dépendances qui remplissent les conditions. Ensuite, il placera les dépendances extraites dans le répertoire du fournisseur et écrira les numéros de version précis de toutes les dépendances extraites dans le fichier composer.lock.
Ce que fait composer install est très similaire, la seule différence est la première étape. Lorsque vous disposez déjà d'une copie de composer.lock localement, il lira votre composer.lock au lieu de composer.json et l'utilisera comme standard pour télécharger les dépendances. Lorsque vous n'avez pas composer.lock localement, ce qu'il fait n'est en réalité pas différent de la mise à jour du compositeur.
Cela signifie que tant que vous disposez d'une copie de composer.lock localement, vous pouvez garantir que vous pourrez extraire les mêmes dépendances, quel que soit le temps que cela prend. Et si vous l'intégrez au contrôle de version de votre projet, vous pouvez alors vous assurer que tout le monde et chaque ordinateur de votre projet, quel que soit le système, peut extraire exactement les mêmes dépendances pour réduire l'impact potentiel sur le déploiement. Bien sûr, n’oubliez pas que la commande que vous devez utiliser est composer install.
Alors, quand devriez-vous utiliser composer update ? Lorsque vous modifiez vos dépendances, que vous ajoutiez une nouvelle dépendance, modifiiez la version de la dépendance ou supprimiez une dépendance, si vous exécutez composer install à ce moment-là, il n'y aura aucun changement, mais vous recevrez un message d'avertissement
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Certaines personnes peuvent être curieuses de savoir comment php sait que j'ai modifié la dépendance ou que composer.lock a expiré. C'est très simple. Si vous ouvrez composer.lock, vous y trouverez un champ de hachage, qui est la valeur de hachage de la dépendance correspondante à ce moment-là. Si les valeurs sont incohérentes, vous saurez naturellement qu'un changement s'est produit.
À ce stade, vous devez mettre à jour vos dépendances via composer update.
Si vous ne souhaitez pas affecter les autres dépendances installées et mettre à jour uniquement les parties que vous avez modifiées, vous pouvez spécifier la liste blanche pour déterminer la portée de la mise à jour. Par exemple, composer update monolog/monolog ne mettra à jour que monolog/. Monlog est une dépendance et les autres dépendances seront ignorées même si elles sont mises à jour.
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!