devel / php drupal'dan drush komutunu çalıştır


9

Herhangi biri bana devel / php'den drush komutunu nasıl çalıştırabileceğimi söyleyebilir mi?

PHP kodlarını devel / php'den yürütebilirim. Ama devel / php'den drush komutunu nasıl çalıştırabileceğimi bilmiyorum. (Bildiğimiz gibi devel modülünden gelen "devel / php" URL'si).

Cron amaçlı özel bir drush komutu yazdım. Bu komutları komut satırından çalıştırabilirim.

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

Aşağıda belirtildiği gibi bazı işlevlerin devel / php'den çalışması bekleniyor

some_function("drush cc all");

Yanıtlar:


11

Birisi bir Drupal sitesinden kabuk erişimi sağlamak için bir modül oluşturmaya çalıştı, ancak hiçbir zaman tam olarak hata ayıklanamadı. Drupal Terminali projesine bakın . Belki jQuery terminalinde, birisi tekrar ziyaret ederse bu çalışmayı kolaylaştırabilecek gelişmeler olmuştur.

Php içinden Drush yürütmek istiyorsanız, genellikle kullanmak drush_invoke_process()daha iyidir exec("drush ...").

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

Sadece bir kerelik bir komut çalıştırıyorsanız ve komut sonuçlarını umursamıyorsanız exec("drush ..."), yine de iyidir.


6

Kalidasan'ın önerdiği gibi, exec () işlevini kullanarak aşağıdakileri yapabilirsiniz:

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

Normalde devel, settings.php dosyasının bulunduğu bu komutu çalıştırır; özel bir çok site mimarisine sahipseniz ve drush komutunu başka bir yoldan çalıştırmanız gerekiyorsa, komutları (";" noktalı virgül kullanarak) doğru yola erişin ve drush komutunu çalıştırın:

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

Bazen, drel komutlarını devel / php'den çalıştırmak, drush'tan işlevsellikleri yürütmeniz gerektiğinde yararlıdır, ancak komut satırı kabuğuna erişiminiz veya çalıştırma izniniz yoksa.

Not: Ben sadece örnek olarak "drush fra" kullandım, başka bir drush komutu ile kullanılabilir.


5

Sonunda çözüm bulundu. shell_exec ("drush status") iyi çalışıyor.

resim açıklamasını buraya girin


2

Drush, Drupal için bir komut satırı kabuğu ve Unix komut dosyası arabirimidir.

Sen gerekir sahip kabuk erişimi yürütmeye drush komutları.


Bunu devel / php'den yapmanın bir yolu var. Umarım exec () kullanımını bilirsiniz. Benzer şekilde devel / php ile drush komutunu da uygulayabiliriz. Cevabını kabul edemem.
kalidasan

..Ve cevap ......shell_exec()
sobi3ch

@ sobi3ch Devel'de php kodu kullanarak site ve veritabanının yedeğini almak mümkün müdür? Lütfen betiği paylaşın. Bu benim için tek seçenek. Backup_migrate modülünü yükleyemiyorum.
Umair
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.