Quelles sont les différences entre composer updateet composer install?
Quelles sont les différences entre composer updateet composer install?
Réponses:
mise à jour du compositeur
composer update mettra à jour vos dépendances telles qu'elles sont spécifiées dans composer.json
Par exemple, si vous avez besoin de ce package en tant que dépendance:
"mockery/mockery": "0.9.*",
et que vous avez effectivement installé la 0.9.1version du package, l'exécution composer updateentraînera une mise à jour de ce package (par exemple vers 0.9.2, s'il a déjà été publié)
en détail composer update:
composer.jsoncomposer.jsoncomposer.lockà jour pour stocker la version des packages installésinstallation du compositeur
composer installne mettra rien à jour; il installera simplement toutes les dépendances comme spécifié dans le composer.lockfichier
En détail:
composer.lockfichier existe (sinon, exécutez-le composer-updateet créez-le)composer.lockfichiercomposer.lockfichierQuand installer et quand mettre à jour
composer updateest principalement utilisé dans la 'phase de développement', pour mettre à jour nos packages de projet en fonction de ce que nous avons spécifié dans le composer.jsonfichier,
composer install est principalement utilisé dans la «phase de déploiement» pour installer notre application sur un serveur de production ou sur un environnement de test, en utilisant les mêmes dépendances stockées dans le fichier composer.lock créé par composer update.
composer global updatemet à jour les dépendances dans votre référentiel global sur le système local ( COMPOSER_HOMEvariable env)
composer updatesur votre système local et tester votre application, puis télécharger le composer.lock sur votre serveur de production et exécutercomposer install
Lorsque vous l'exécutez, composer installil recherchera un fichier de verrouillage et installera tout ce qu'il contient.S'il n'en trouve pas, il lira composer.json, installera ses dépendances et générera un fichier de verrouillage.
Lorsque vous l'exécutez, composer updateil lit simplement composer.json, installe les dépendances et met à jour le fichier de verrouillage (ou crée un nouveau fichier de verrouillage).
composer installcomposer.lockexiste.
composer.lockfichier.composer.lockn'existe pas .
composer.json.composer.lockfichier en fonction des packages installés.Selon composer help install::
La commande install lit le
composer.lockfichier à partir du répertoire actuel, le traite, télécharge et installe toutes les bibliothèques et dépendances décrites dans ce fichier. Si le fichier n'existe pas, il rechercheracomposer.jsonet fera de même.
composer updatecomposer.jsonfichier (installe, met à jour et supprime).composer.lockfichier en fonction des modifications.Selon composer help update::
La commande update lit le
composer.jsonfichier dans le répertoire actuel, le traite et met à jour, supprime ou installe toutes les dépendances.
Voir aussi: Compositeur: tout tourne autour du fichier de verrouillage
La meilleure différence entre composer updateetcomposer install
installation du compositeur
Pour ajouter des dépendances, vous devez l'ajouter manuellement au fichier composer.json.
Si le fichier composer.lock existe, installez exactement ce qui est spécifié sur ce fichier
Aucun composant ne sera mis à jour avec cette commande.
mise à jour du compositeur
Pour ajouter ou supprimer des dépendances, vous devez l'ajouter manuellement au fichier composer.json
Si vous ne pouvez pas (ou ne savez pas comment ajouter ou supprimer une bibliothèque, ce qui est en fait facile, ajoutez simplement le nom de la dépendance et la version dans la propriété require du fichier) modifiez le fichier composer.json manuellement ou vous préférez utiliser la ligne de commande à la place, composer a des fonctions spéciales pour cela:
compositeur exigent
Par exemple, si nous voulons ajouter une dépendance avec la ligne de commande, nous allons simplement exécuter
composer require twig/twig
compositeur supprimer
Si vous souhaitez supprimer une dépendance inutilisée, nous exécuterons simplement:
composer remove twig/twig --update-with-dependencies
if(composer.lock existed){
installs dependency with EXACT version in composer.lock file
} else {
installs dependency with LATEST version in composer.json
generate the composer.lock file
}
composer update = remove composer.lock -> composer install
Pourquoi nous avons besoin de 2 commandes. Je pense que cela peut expliquer par composer.lock.
Imaginez, nous N'avons et , il y a une dépendance ou .
Ensuite, il y aura des cas composer.lockcomposer.json"monolog/monolog": "1.0.*""monolog/monolog": "^1.0"
composer installà une heure différente.Et si nous utilisons toujours une version EXACT dans composer.jsontel que "monolog/monolog": "1.0.1"?
Nous avons encore besoin composer.lockcar composer.jsonsuivre uniquement la version principale de votre dépendance, il ne peut pas suivre la version des dépendances de dépendance.
Que faire si toutes les dépendances de dépendance utilisent également la version EXACT?
Imaginez que vous commencez avec TOUTES les dépendances qui utilisent la version EXACT, alors vous ne vous souciez pas composer.lock. Cependant, quelques mois plus tard, vous ajoutez une nouvelle dépendance (ou mettez à jour l'ancienne dépendance), et les dépendances de cette dépendance n'utilisent pas la version EXACT. Alors il vaut mieux s'en soucier composer.lockau début.
En plus de cela, il y a un avantage d'une version sémantique sur une version exacte. Nous pouvons mettre à jour la dépendance plusieurs fois au cours du développement et la bibliothèque a souvent de petits changements tels que la correction de bogues. Ensuite, il est plus facile de mettre à niveau la dépendance qui utilise la version sémantique.