виконання команди 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 Terminal . Можливо, в терміналі jQuery було досягнуто вдосконалення, що може полегшити роботу, якщо хтось перегляне його.

Якщо ви хочете виконати Drush зсередини php, його краще використовувати, drush_invoke_process()а не використовувати exec("drush ...").

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

Якщо ви просто виконуєте одноразову команду і не піклуєтесь про результати команд, тоді 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.

У вас повинен бути доступ до оболонки для виконання команд барабану .


Є спосіб зробити це з devel / php. Я сподіваюся, що ви знаєте використання exec (). Аналогічним чином ми можемо виконати команду drush через devel / php. Я не можу прийняти вашу відповідь.
kalidasan

..І відповідь ......shell_exec()
sobi3ch

@ sobi3ch Чи можна зробити резервну копію сайту та бази даних, використовуючи php-код у розробці? Будь ласка, поділіться сценарієм. Вважаючи, що це єдиний доступний для мене варіант. Не можу встановити модуль backup_migrate.
Умаїр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.