Pour mettre à jour Drupal à l'aide de Composer, il vous suffit de déplacer la "drupal/core": "~8.1"
ligne de la section de remplacement vers la section requise . À la fin, le contenu du fichier composer.json est le suivant.
{
"name": "drupal/drupal",
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"type": "project",
"license": "GPL-2.0+",
"require": {
"composer/installers": "^1.0.21",
"wikimedia/composer-merge-plugin": "~1.3",
"drupal/core": "~8.1"
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"preferred-install": "dist",
"autoloader-suffix": "Drupal8"
},
"extra": {
"_readme": [
"By default Drupal loads the autoloader from ./vendor/autoload.php.",
"To change the autoloader you can edit ./autoload.php."
],
"merge-plugin": {
"include": [
"core/composer.json"
],
"recurse": false,
"replace": false,
"merge-extra": false
}
},
"autoload": {
"psr-4": {
"Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
}
},
"scripts": {
"pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
"post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
"post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
"post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
},
}
J'étais habitué à exécuter drush upc
pour mettre à jour Drupal, mais cela a remplacé mon fichier composer.json et le répertoire du fournisseur. En conséquence, je devrais exécuter composer update
tout le temps pour mettre à jour le contenu du répertoire des fournisseurs .
Maintenant, en utilisant Composer pour mettre à jour Drupal, je peux également l'utiliser pour télécharger / mettre à jour les modules que j'utilise.
Le fichier composer.json que j'utilise est le suivant.
{
"name": "drupal/drupal",
"description": "Drupal is an open source content management platform powering millions of websites and applications.",
"type": "project",
"license": "GPL-2.0+",
"require": {
"composer/installers": "^1.0.21",
"wikimedia/composer-merge-plugin": "~1.3",
"drupal/core": "~8.1",
"drupal/imagick": "8.1.*@dev",
"drupal/mollom": "^8.1",
"drupal/honeypot": "^8.1"
},
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
"preferred-install": "dist",
"autoloader-suffix": "Drupal8"
},
"extra": {
"_readme": [
"By default Drupal loads the autoloader from ./vendor/autoload.php.",
"To change the autoloader you can edit ./autoload.php."
],
"merge-plugin": {
"include": [
"core/composer.json"
],
"recurse": false,
"replace": false,
"merge-extra": false
}
},
"autoload": {
"psr-4": {
"Drupal\\Core\\Composer\\": "core/lib/Drupal/Core/Composer"
}
},
"scripts": {
"pre-autoload-dump": "Drupal\\Core\\Composer\\Composer::preAutoloadDump",
"post-autoload-dump": "Drupal\\Core\\Composer\\Composer::ensureHtaccess",
"post-package-install": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup",
"post-package-update": "Drupal\\Core\\Composer\\Composer::vendorTestCodeCleanup"
},
"repositories": {
"drupal": {
"type": "composer",
"url": "https://packagist.drupal-composer.org"
}
}
}
En plus de déplacer cette ligne comme je l'ai dit, j'ai également exécuté les commandes suivantes.
composer config repositories.drupal composer https://packagist.drupal-composer.org
composer require drupal/honeypot
composer require drupal/mollom
composer require drupal/imagick 8.1.*@dev
Le premier me permet d'exiger des modules Drupal et de les mettre à jour.
La dernière fois que j'ai essayé, le référentiel officiel Drupal était encore en phase alpha, et cela m'a posé des problèmes avec les modules qui se déclaraient comme des packages Composer, mais ne définissant pas le type de package (c'est-à-dire drupal-module). J'espère qu'ils ont résolu le problème, maintenant. Pour le référentiel Drupal Packager, les commandes à utiliser sont les suivantes.
composer config repositories.drupal composer https://packages.drupal.org/8
composer require drupal/honeypot
composer require drupal/mollom
composer require drupal/imagick 1.*@dev
Si vous utilisiez déjà https://packagist.drupal-composer.org et que vous souhaitez remplacer par le site officiel de Packagist, vous devez remplacer la première commande par composer config repositories.0 composer https://packages.drupal.org/8
, qui fonctionne si vous n'avez pas d'autres référentiels, en vous basant sur Utilisation de packages.drupal.org .
Notez également que packagist.drupal-composer.org devrait être obsolète en janvier 2017 (ou lorsque le référentiel de packages officiel de Drupal.org sera prêt) .
drush up drupal
, je pense que cela pourrait remplacer votre composer.json (ainsi que d'autres fichiers), alors sauvegardez-le et revenez si nécessaire. Après cette utilisationcomposer update
et vous devriez être