Quelles sont les différences entre composer update
et composer install
?
Quelles sont les différences entre composer update
et 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.1
version du package, l'exécution composer update
entraî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.json
composer.json
composer.lock
à jour pour stocker la version des packages installésinstallation du compositeur
composer install
ne mettra rien à jour; il installera simplement toutes les dépendances comme spécifié dans le composer.lock
fichier
En détail:
composer.lock
fichier existe (sinon, exécutez-le composer-update
et créez-le)composer.lock
fichiercomposer.lock
fichierQuand installer et quand mettre à jour
composer update
est 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.json
fichier,
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 update
met à jour les dépendances dans votre référentiel global sur le système local ( COMPOSER_HOME
variable env)
composer update
sur 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 install
il 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 update
il lit simplement composer.json
, installe les dépendances et met à jour le fichier de verrouillage (ou crée un nouveau fichier de verrouillage).
composer install
composer.lock
existe.
composer.lock
fichier.composer.lock
n'existe pas .
composer.json
.composer.lock
fichier en fonction des packages installés.Selon composer help install
::
La commande install lit le
composer.lock
fichier à 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.json
et fera de même.
composer update
composer.json
fichier (installe, met à jour et supprime).composer.lock
fichier en fonction des modifications.Selon composer help update
::
La commande update lit le
composer.json
fichier 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 update
etcomposer 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.lock
composer.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.json
tel que "monolog/monolog": "1.0.1"
?
Nous avons encore besoin composer.lock
car composer.json
suivre 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.lock
au 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.