devel / php drupalからdrushコマンドを実行する


9

どなたか、dvel / phpからdrushコマンドを実行する方法を教えていただけますか?

devel / phpからPHPコードを実行できます。しかし、どうすればdevel / phpからdrushコマンドを実行できるかわかりません。(私たちが知っているように、「devel / php」URLはdevelモジュールから来ています)。

私はcronの目的でいくつかのカスタムdrushコマンドを記述しました。コマンドラインからこれらのコマンドを実行できます。

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

下記の関数がdevel / phpから実行されることを期待しています

some_function("drush cc all");

回答:


11

誰かがDrupalサイト内からシェルアクセスを提供するモジュールを作成しようとしましたが、完全にはデバッグされませんでした。Drupal Terminalプロジェクトを参照してください。おそらく、jQueryターミナルに進歩があり、誰かが再訪したときにこれを簡単に機能させることができるかもしれません。

Drushをphp内から実行したい場合は、を使用するdrush_invoke_process()よりも、一般に使用することをお勧めしますexec("drush ...")

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

exec("drush ...")ただし、1回限りのコマンドを実行していて、コマンドの結果を気にしない場合は、問題ありません。


6

kalidasanが示唆しているように、exec()関数を使用して、次のようなことを行うことができます。

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

通常、develは、settings.phpが配置されている場所でこのコマンドを実行します。カスタムマルチサイトアーキテクチャがあり、別のパスからdrushコマンドを実行する必要がある場合は、コマンドを( ";"セミコロンを使用して)チェーンできます。正しいパスにアクセスし、drushコマンドを実行します。

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

ときどき、drush / phpからdrushコマンドを実行すると、drushから機能を実行する必要があるが、コマンドラインシェルへのアクセス権や実行権限がない場合に便利です。

注:「drush fra」は例としてのみ使用しました。他のどのdrushコマンドでも使用できます。


5

最終的に解決策が見つかりました。shell_exec( "drush status")正常に動作しています。

ここに画像の説明を入力してください


2

Drushは、DrupalのコマンドラインシェルおよびUnixスクリプトインターフェイスです。

あなたは必要があります持っているシェルアクセスを実行するためにdrushのコマンドを。


devel / phpからそれを行う方法があります。exec()の使用法を知っていただければ幸いです。同様に、dvel / phpを通じてdrushコマンドを実行できます。私はあなたの答えを受け入れることができません。
カリダサン2014

..AND答えは......shell_exec()
sobi3ch

@ sobi3ch develのphpコードを使用してサイトとデータベースのバックアップを作成することは可能ですか?スクリプトを共有してください。これが私が利用できる唯一のオプションであることを考えると。backup_migrateモジュールをインストールできません。
Umair 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.