esegue il comando drush da drupal devel / php


9

Qualcuno può dirmi come posso eseguire il comando drush da devel / php?

Posso eseguire i codici PHP da devel / php. Ma non so come posso eseguire il comando drush da devel / php. (Come sappiamo URL "devel / php" proveniente dal modulo devel).

Ho scritto un comando di trascinamento personalizzato per scopi cron. Sono in grado di eseguire quei comandi dalla riga di comando.

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

Prevedendo che alcune funzioni, come indicato di seguito, vengano eseguite da devel / php

some_function("drush cc all");

Risposte:


11

Qualcuno ha provato a creare un modulo per fornire l'accesso alla shell all'interno di un sito Drupal, ma non è mai stato eseguito il debug completo. Vedi il progetto Drupal Terminal . Forse ci sono stati dei progressi nel terminale jQuery che potrebbero rendere più facile farlo funzionare se qualcuno lo rivisita.

Se vuoi eseguire Drush da php, è generalmente meglio usare drush_invoke_process()piuttosto che exec("drush ...").

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

Se stai solo eseguendo un comando unico e non ti importa dei risultati del comando, allora exec("drush ...")va bene.


6

Come suggerisce kalidasan, puoi usare la funzione exec (), per fare qualcosa del tipo:

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

Normalmente, devel eseguirà questo comando dove si trova settings.php, nel caso in cui tu abbia un'architettura multi-sito personalizzata e tu debba eseguire il comando drush da un altro percorso, potresti incatenare i comandi (usando ";" punto e virgola) per accedere al percorso giusto ed eseguire il comando drush:

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

A volte, l'esecuzione dei comandi drush da devel / php è utile quando è necessario eseguire funzionalità da drush ma non si ha accesso alla shell della riga di comando o le autorizzazioni per eseguirlo.

Nota: ho usato "drush fra" solo come esempio, potrebbe essere usato con qualsiasi altro comando drush.


5

Soluzione finalmente trovata. shell_exec ("drush status") funziona bene.

inserisci qui la descrizione dell'immagine


2

Drush è una shell da riga di comando e un'interfaccia di scripting Unix per Drupal.

È necessario disporre dell'accesso alla shell per eseguire i comandi drush .


C'è un modo per farlo da devel / php. Spero che tu conosca l'uso di exec (). In modo simile possiamo eseguire il comando drush tramite devel / php. Non posso accettare la tua risposta.
kalidasan,

..E la risposta è ......shell_exec()
sobi3ch,

@ sobi3ch È possibile eseguire il backup del sito e del database utilizzando il codice php in devel? Si prega di condividere lo script. Considerando che questa è l'unica opzione disponibile per me. Non riesco a installare il modulo backup_migrate.
Umair,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.