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");
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.
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.
Solution finalement trouvée. Shell_exec ("drush status") fonctionne correctement.
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.