J'ai installé (ou téléchargé) drupal 8 via:
composer create-project drupal/drupal my_site_name 8.0.*
Qui, au moment où je l'ai exécuté, a téléchargé Drupal 8.0.1. Maintenant drupal 8.0.2 est disponible et je voudrais mettre à jour vers cette version .
Je ne sais pas comment mettre à jour le noyau mais j'ai décidé d'essayer d'exécuter composer update
depuis mon drupal.
Cela met à jour de nombreux packages (par exemple):
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Removing composer/installers (v1.0.21)
- Installing composer/installers (v1.0.22)
Loading from cache
> Drupal\Core\Composer\Composer::vendorTestCodeCleanup
- Removing symfony/class-loader (v2.7.6)
- Installing symfony/class-loader (v2.7.9)
Downloading: 100%
> Drupal\Core\Composer\Composer::vendorTestCodeCleanup
- Removing symfony/console (v2.7.6)
- Installing symfony/console (v2.7.9)
Downloading: 100%
(...)
> Drupal\Core\Composer\Composer::vendorTestCodeCleanup
- Removing twig/twig (v1.23.1)
- Installing twig/twig (v1.23.3)
Downloading: 100%
Cependant, je ne vois rien sur la mise à jour drupal/drupal
. Et lorsque je visite le rapport d'état de mon site, il affiche toujours 8.0.1.
Alors, comment puis-je réellement mettre à jour le noyau via le compositeur?
La meilleure façon de commencer avec Drupal 8 est d'utiliser le projet drupal-composer/drupal-project :
composer create-project drupal-composer/drupal-project:8.x-dev some-dir --stability dev --no-interaction
Le projet Composer drupal-composer/drupal-project
est structuré différemment du projet drupal/drupal
, bien que les deux produisent le même exécutable Drupal site. drupal/drupal
utilise le wikimedia/composer-merge-plugin
pour inclure le fichier composer.json du répertoire core
qui fait partie du drupal/drupal
le projet lui-même, qui est un moyen non standard (mais fonctionnel) de charger les dépendances Composer. Le drupal-composer/drupal-project
, d'autre part, nécessite le projet Composer drupal/core
, qui contient uniquement le répertoire core
de drupal/drupal
. Cela suit les techniques standard de gestion des dépendances Composer, ce qui facilite l'utilisation de Composer pour gérer les mises à niveau).
Si vous démarrez votre site Drupal en l'utilisant comme projet de base, vous pouvez toujours utiliser composer update
pour mettre à jour vos fichiers contrib, exactement comme vous le montrez dans votre question. Pour mettre à jour Drupal core, exécutez:
./scripts/drupal/update-scaffold
Mettez d'abord à jour la version de Drupal core dans votre fichier composer.json, comme décrit dans le readme .
Une fois # 77 fusionné, Drupal core sera automatiquement mis à jour à chaque fois que vous exécutez composer update
.
Ceci est discuté plus en détail dans le billet de blog Correction des lacunes dans le processus de mise à jour Composer avec Drupal-Composer .