Per aggiornare Drupal usando Composer, devi solo spostare la "drupal/core": "~8.1"
linea dalla sezione di sostituzione alla sezione richiesta . Alla fine il contenuto del file composer.json è simile al seguente.
{
"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"
},
}
Ero abituato a correre drush upc
per aggiornare Drupal, ma questo sostituiva il mio file composer.json e la directory del fornitore. Di conseguenza, dovrei eseguire composer update
tutte le volte per aggiornare il contenuto della directory del fornitore .
Ora, usando Composer per aggiornare Drupal, posso anche usarlo per scaricare / aggiornare i moduli che sto usando.
Il file composer.json che sto usando è il seguente.
{
"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"
}
}
}
Oltre a spostare quella linea come ho detto, ho anche eseguito i seguenti comandi.
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
Il primo mi permette di richiedere moduli Drupal e aggiornarli.
L'ultima volta che ho provato, il repository ufficiale di Drupal era ancora in fase alpha, e mi ha dato problemi con i moduli che si sono dichiarati pacchetti Composer, ma non impostando il tipo di pacchetto (cioè drupal-module). Spero che abbiano risolto il problema, ora. Per il repository Drupal Packager, i comandi da utilizzare sono i seguenti.
composer config repositories.drupal composer https://packages.drupal.org/8
composer require drupal/honeypot
composer require drupal/mollom
composer require drupal/imagick 1.*@dev
Se stavi già utilizzando https://packagist.drupal-composer.org e desideri sostituirlo con il sito Packagist ufficiale, devi sostituire il primo comando composer config repositories.0 composer https://packages.drupal.org/8
, che funziona se non hai altri repository, basandoti su Utilizzando pacchetti.drupal.org .
Si noti inoltre che packagist.drupal-composer.org è programmato per essere deprecato a gennaio 2017 (o quando il Repository ufficiale dei pacchetti da Drupal.org è pronto) .
drush up drupal
, penso che questo potrebbe sovrascrivere il tuo composer.json tho (e altri file), quindi esegui il backup e ripristina se necessario. Dopocomposer update