Чтобы обновить Drupal с помощью Composer, вам просто нужно переместить "drupal/core": "~8.1"
строку из раздела replace в раздел require . В конце содержимое файла composer.json выглядит следующим образом.
{
"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"
},
}
Я использовал для запуска drush upc
обновления Drupal, но это переопределило мой файл composer.json и каталог vendor. Как следствие этого я должен запускать composer update
все время, чтобы обновить содержимое каталога vendor .
Теперь, используя Composer для обновления Drupal, я также могу использовать его для загрузки / обновления модулей, которые я использую.
Файл composer.json, который я использую, является следующим.
{
"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"
}
}
}
Помимо перемещения этой строки, как я уже сказал, я также выполнил следующие команды.
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
Первый позволяет мне требовать модули Drupal и обновлять их.
В прошлый раз, когда я пытался, официальный репозиторий Drupal все еще находился в стадии альфа, и это дало мне проблемы с модулями, которые объявили себя пакетами Composer, но не установили тип пакета (т.е. drupal-module). Я надеюсь, что они решили проблему сейчас. Для хранилища Drupal Packager используются следующие команды.
composer config repositories.drupal composer https://packages.drupal.org/8
composer require drupal/honeypot
composer require drupal/mollom
composer require drupal/imagick 1.*@dev
Если вы уже использовали https://packagist.drupal-composer.org и хотите заменить его официальным сайтом Packagist, вам нужно заменить первую команду на composer config repositories.0 composer https://packages.drupal.org/8
, которая работает, если у вас нет других репозиториев, основываясь на Использование packages.drupal.org .
Также обратите внимание, что packagist.drupal-composer.org объявлен устаревшим в январе 2017 года (или когда будет готов официальный репозиторий пакетов от Drupal.org) .
drush up drupal
, я думаю, что это может переопределить ваш composer.json tho (и другие файлы), поэтому сделайте резервную копию и восстановите, если необходимо. После этого использования,composer update
и вы должны быть хорошими, чтобы пойти