รันคำสั่ง drush จาก devel / php drupal


9

ใครช่วยกรุณาบอกฉันว่าฉันจะรันคำสั่ง drush จาก devel / php ได้อย่างไร

ฉันสามารถรันโค้ด PHP จาก devel / php แต่ฉันไม่รู้ว่าฉันจะรันคำสั่ง drush จาก devel / php ได้อย่างไร (ดังที่เราทราบ URL "devel / php" ที่มาจากโมดูล devel)

ฉันได้เขียนคำสั่ง drush แบบกำหนดเองเพื่อวัตถุประสงค์ cron ฉันสามารถเรียกใช้คำสั่งเหล่านั้นจากบรรทัดคำสั่ง

> 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 บางทีมีความก้าวหน้าในเทอร์มินัล jQuery ที่อาจทำให้การทำงานนี้ง่ายขึ้นถ้ามีคนมาเยี่ยมอีก

หากคุณต้องการ exec Drush จากภายใน PHP, มันเป็นเรื่องปกติดีกว่าการใช้มากกว่าdrush_invoke_process()exec("drush ...")

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

หากคุณเพียงแค่เรียกใช้คำสั่ง one-off และคุณไม่สนใจเกี่ยวกับผลลัพธ์ของคำสั่งก็exec("drush ...")ถือว่าใช้ได้


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 จาก devel / php มีประโยชน์เมื่อคุณต้องการเรียกใช้ฟังก์ชันจาก drush แต่คุณไม่สามารถเข้าถึงเชลล์บรรทัดคำสั่งหรือสิทธิ์ในการเรียกใช้

หมายเหตุ: ฉันใช้ "drush fra" เป็นเพียงตัวอย่างเท่านั้นสามารถใช้กับคำสั่ง drush อื่น ๆ ได้



2

Drush เป็นเชลล์บรรทัดคำสั่งและอินเตอร์เฟสสคริปต์ Unixสำหรับ Drupal

คุณต้องมีสิทธิ์เข้าถึงเชลล์เพื่อดำเนินการคำสั่งdrush


มีวิธีการทำจาก devel / php ฉันหวังว่าคุณจะรู้ว่าการใช้ exec () วิธีที่คล้ายกันเราสามารถรันคำสั่ง drush ผ่าน devel / php ฉันไม่สามารถยอมรับคำตอบของคุณ
kalidasan

.. และคำตอบก็คือ ......shell_exec()
sobi3ch

@ sobi3ch เป็นไปได้ไหมที่จะสำรองข้อมูลของเว็บไซต์และฐานข้อมูลโดยใช้รหัส PHP ใน devel? กรุณาแบ่งปันสคริปต์ พิจารณาตัวเลือกนี้เป็นตัวเลือกเดียวที่มีให้ฉัน ฉันไม่สามารถติดตั้งโมดูล backup_migrate
Umair
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.