execute o comando drush do devel / php drupal

9

Alguém pode me dizer como posso executar o comando drush no devel / php?

Eu posso executar códigos PHP a partir de devel / php. Mas não sei como executar o comando drush no devel / php. (Como sabemos a URL "devel / php" proveniente do módulo devel).

Eu escrevi algum comando drush personalizado para fins de cron. Consigo executar esses comandos na linha de comando.

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

Esperando que alguma função, como mencionado abaixo, seja executada a partir do devel / php

some_function("drush cc all");
kalidasan
fonte

Respostas:

11

Alguém tentou criar um módulo para fornecer acesso ao shell a partir de um site Drupal, mas nunca foi totalmente depurado. Veja o projeto do Terminal Drupal . Talvez tenha havido avanços no terminal jQuery que possam facilitar a execução desse trabalho se alguém o revisitar.

Se você deseja executar o Drush no php, geralmente é melhor usá-lo drush_invoke_process()do que exec("drush ...").

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

Se você está apenas executando um comando único e não se importa com os resultados do comando, tudo exec("drush ...")bem.

greg_1_anderson
fonte
6

Como o kalidasan sugere, você pode usar a função exec () para fazer algo como:

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

Normalmente, o devel executará esse comando onde o settings.php está localizado, caso você tenha uma arquitetura personalizada de vários sites e precise executar o comando drush de outro caminho, poderá encadear comandos (usando ";" ponto e vírgula) para acesse o caminho certo e execute o comando drush:

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

Às vezes, a execução de comandos drush no devel / php é útil quando você precisa executar funcionalidades do drush, mas não tem acesso ao shell da linha de comando ou permissão para executá-lo.

Nota: Eu usei "drush fra" apenas como exemplo, ele poderia ser usado com qualquer outro comando drush.

gerzenstl
fonte
5

Solução finalmente encontrada. shell_exec ("status do drush") está funcionando bem.

insira a descrição da imagem aqui

kalidasan
fonte
2

Drush é um shell de linha de comando e uma interface de script Unix para o Drupal.

Você deve ter acesso ao shell para executar os comandos drush .

shrish
fonte
Existe uma maneira de fazer isso a partir do devel / php. Espero que você saiba o uso de exec (). De maneira semelhante, podemos executar o comando drush através do devel / php. Não posso aceitar sua resposta.
precisa saber é o seguinte
..E a resposta é ......shell_exec()
sobi3ch
@ sobi3ch É possível fazer backup do site e banco de dados usando o código php no devel? Por favor, compartilhe o script. Considerando que esta é a única opção disponível para mim. Não consigo instalar o módulo backup_migrate.
Umair