web-dev-qa-db-fra.com

exécuter la commande drush depuis devel / php drupal

Quelqu'un peut-il me dire comment exécuter la commande drush depuis devel/php?

Je peux exécuter PHP codes de devel/php. Mais je ne sais pas comment puis-je exécuter la commande drush de devel/php. (Comme nous le savons, l'URL "devel/php" provenant du module devel) ).

J'ai écrit une commande drush personnalisée à des fins cron. Je peux en mesure d'exécuter ces commandes à partir de la ligne de commande.

> drush my-cmd or drush cc all or drush status , etc ... I can run it through command line.

Attendre une fonction comme mentionné ci-dessous pour s'exécuter à partir de devel/php

some_function("drush cc all");
9
kalidasan

Quelqu'un a essayé de créer un module pour fournir un accès Shell à partir d'un site Drupal, mais il n'a jamais été complètement débogué. Voir le projet Drupal Terminal . Peut-être y a-t-il eu des avancées dans le terminal jQuery qui pourrait faciliter le fonctionnement si quelqu'un le revisitait.

Si vous souhaitez exécuter Drush depuis php, il est généralement préférable d'utiliser drush_invoke_process() plutôt que exec("drush ...").

$values = drush_invoke_process("@site", "cc", array("all"), array("verbose"));

Si vous exécutez simplement une commande unique et que vous ne vous souciez pas des résultats de la commande, alors exec("drush ...") est bien, cependant.

11
greg_1_anderson

Comme le suggère kalidasan, vous pouvez utiliser la fonction exec () pour faire quelque chose comme:

exec("drush fra -y", $output); var_dump($output);

Normalement, devel exécutera cette commande là où se trouve le fichier settings.php, au cas où vous avez une architecture multisite personnalisée et que vous devez exécuter la commande drush à partir d'un autre chemin, vous pouvez enchaîner les commandes (en utilisant ";" point-virgule) pour accéder au bon chemin et exécuter la commande drush:

exec("cd {absolute or relative path to your settings.php site}; drush fra -y;", $output); var_dump($output);

Parfois, l'exécution de commandes drush à partir de devel/php est utile lorsque vous devez exécuter des fonctionnalités à partir de drush mais que vous n'avez pas accès à l'environnement de ligne de commande ni l'autorisation de l'exécuter.

Remarque: J'ai utilisé "drush fra" uniquement à titre d'exemple, il pourrait être utilisé avec n'importe quelle autre commande drush.

6
gerzenstl

Solution finalement trouvée. Shell_exec ("drush status") fonctionne correctement.

enter image description here

5
kalidasan

Drush est une interface shell de ligne de commande et script Unix pour Drupal.

Vous devez avoir Accès shell pour exécuter les commandes drush.

2
shrish