Je travaille sur un site Drupal 8, et une partie de l'exigence consiste à donner au client une page où il peut cliquer sur un bouton pour effectuer une tâche particulière. Je peux le faire en utilisant un Drush command depuis la ligne de commande, mais je veux le faire depuis un module.
J'avais vu du code en utilisant php_exec()
ou drush_invoke_process()
. Comment puis-je utiliser cette fonction?
Il suffit de le démarrer de l'autre côté. Imaginez que chaque commande Drush exécute du code PHP. Ensuite, vérifiez le code de la commande Drush que vous souhaitez exécuter. Ensuite, modifiez-le dans la fonction d'envoi de votre bouton.
Le faire comme suggéré dans votre question ne semble pas être très durable, compte tenu du fait que tous les hôtes n'ont pas installé Drush. Il vaut donc mieux faire fonctionner cette fonctionnalité indépendamment de son environnement.
Trouvé une manière possible: Comment exécuter Drupal à partir du code? en utilisant Process
de Symfony et la question signalée comme doublon possible. Et concernant la fonction drush_invoke_process()
, d'après ce que je comprends jusqu'à présent, il semble pouvoir être appelé uniquement à partir d'autres commandes Drush.
Chose suivante qui a été portée à mon attention: dans les commentaires de votre question, vous dites que vous essayez d'exécuter /vendor/bin/drush/drush status
ce qui signifie que vous avez le dossier du fournisseur à la racine de votre machine. Ce qui est très probablement faux et il vous suffit de corriger ce chemin.