web-dev-qa-db-fra.com

Mise à jour de Drush avec Composer

J'utilise Drupal depuis plusieurs années, mais je ne fais que me plonger dans Drush - j'ai acheté un tutoriel d'ebook et je me suis frayé un chemin. J'ai installé Composer et utilisé pour installer Drush. Le livre du didacticiel spécifiait une version particulière de Drush à installer (7.0.0-alpha5). J'ai accédé à un dossier drupal et exécuté

drush st 

pour obtenir des informations d'installation qui fonctionnent bien. Le tutoriel explique que vous n'avez pas à naviguer dans le dossier drupal pour ce faire, à la place en utilisant

drush --root=PATH-TO-DRUPAL-SITE st

mais cela apporte une erreur:

Fatal error: Call to undefined function conf_path()

La recherche sur cette erreur suggère qu'il s'agit d'un problème avec la version de Drush et la mise à niveau.

J'ai donc navigué dans le dossier .composer/vendor/drush/drush et exécuté composer mise à jour globale mais composer ne dit rien à mettre à jour, confirmant la version comme 7.0.0-alpha5 - Je suppose que ce n'est pas la dernière version 7.x, ai-je donc besoin de quelque chose à changer dans le fichier composer.json?

3
iain-g

Si vous souhaitez mettre à jour vos installations globales de n'importe quel package sous composer, vous pouvez simplement faire ceci:

composer global update

Vous n'avez pas besoin de naviguer vers .composer/vendor/drush/drush

Cependant: Il y a deux ou trois choses:

1) Votre fichier global composer.json peut avoir une contrainte de version.

Consultez la page packagist de drush: https://packagist.org/packages/drush/drush

Cela vous montrera les versions disponibles de drush.

Éditer ~/.composer/composer.json pour que la contrainte de version pour drush/drush est plus élevé que celui que vous avez. Probablement quelque chose comme "~8".

Faire composer global update.

2) Il est préférable d'installer drush par projet.

Les raisons pour lesquelles sont un peu complexes et peuvent ne pas répondre à la question ici, je vais donc simplement créer un lien vers un article: https://pantheon.io/blog/composer-vs-drush-make-which-should -vous utilisez

6
paul-m

J'ajouterais que, selon vos besoins, composer global update peut ne pas vous amener à la version dont vous avez besoin. Je l'avais exécuté et j'arrivais seulement à la version 8.1.8.

Pour mes besoins, j'avais besoin de 8.1.14, au minimum. Depuis la dernière version stable était 8.1.15 à partir de maintenant, j'ai simplement exécuté ceci: composer require drush/drush:8.1.15. Cela s'est bien passé, puis en vérifiant par drush --version, qui a alors enregistré la version appropriée.

2
karolus

Pour mettre à jour Drush à l'aide de composer, accédez à la racine de votre projet , puis utilisez

composer update drush/drush

Notez que la méthode d'installation et d'exécution de Drush a changé de manière assez importante (je pense que depuis la sortie de Drush 9). Heureusement, la gestion de Drush est désormais beaucoup moins unique à Drush et ressemble beaucoup plus à ce que vous faites avec d'autres logiciels.

Voir les documents officiels: Installer un Drush et Drush Launcher local-site

0
Kay V