thực hiện lệnh drush từ devel / php drupal


9

Có ai có thể vui lòng cho tôi biết làm thế nào tôi có thể thực thi lệnh drush từ devel / php không?

Tôi có thể thực thi mã PHP từ devel / php. Nhưng tôi không biết làm thế nào tôi có thể thực thi lệnh drush từ devel / php. (Như chúng ta đã biết URL "devel / php" đến từ mô-đun devel).

Tôi đã viết một số lệnh drush tùy chỉnh cho mục đích cron. Tôi có thể chạy các lệnh đó từ dòng lệnh.

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

Mong đợi một số chức năng như được đề cập dưới đây để chạy từ devel / php

some_function("drush cc all");

Câu trả lời:


11

Ai đó đã cố gắng tạo một mô-đun để cung cấp quyền truy cập shell từ trong một trang web Drupal, nhưng nó không bao giờ được gỡ lỗi hoàn toàn. Xem dự án Drupal Terminal . Có lẽ đã có những tiến bộ trong thiết bị đầu cuối jQuery có thể giúp việc này hoạt động dễ dàng hơn nếu có ai đó xem lại nó.

Nếu bạn muốn thực thi Drush từ bên trong php, nói chung là tốt hơn để sử dụng drush_invoke_process()hơn là exec("drush ...").

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

Nếu bạn chỉ đang chạy một lệnh một lần và bạn không quan tâm đến kết quả lệnh, thì exec("drush ...")cũng tốt thôi.


6

Như kalidasan gợi ý, bạn có thể sử dụng hàm exec (), để làm một cái gì đó như:

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

Thông thường, devel sẽ chạy lệnh này trong đó cài đặt.php, trong trường hợp bạn có kiến ​​trúc đa trang tùy chỉnh và bạn cần chạy lệnh drush từ một đường dẫn khác, bạn có thể xâu chuỗi các lệnh (sử dụng ";" dấu hai chấm) để truy cập vào đúng đường dẫn và chạy lệnh drush:

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

Đôi khi, chạy các lệnh drush từ devel / php rất hữu ích khi bạn cần thực thi các chức năng từ drush nhưng bạn không có quyền truy cập vào shell dòng lệnh hoặc cho phép chạy nó.

Lưu ý: Tôi chỉ sử dụng "drush fra" làm ví dụ, nó có thể được sử dụng với bất kỳ lệnh drush nào khác.


5

Cuối cùng cũng tìm được giải pháp. shell_exec ("trạng thái drush") đang hoạt động tốt.

nhập mô tả hình ảnh ở đây


2

Drush là một dòng lệnh shell và giao diện kịch bản Unix cho Drupal.

Bạn phảiquyền truy cập shell để thực hiện các lệnh drush .


Có một cách để làm điều đó từ devel / php. Tôi hy vọng bạn biết sử dụng exec (). Cách tương tự chúng ta có thể thực thi lệnh drush thông qua devel / php. Tôi không thể chấp nhận câu trả lời của bạn.
kalidasan

.. và câu trả lời là ......shell_exec()
sobi3ch

@ sobi3ch Có thể tạo bản sao lưu của trang web và cơ sở dữ liệu bằng cách sử dụng mã php không? Hãy chia sẻ kịch bản. Xem xét đây là lựa chọn duy nhất có sẵn cho tôi. Tôi không thể cài đặt mô-đun backup_migrate.
Umair
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.