Написание CLI для CMS на основе php (похоже на Drush)

Я работал над CMS в течение нескольких лет и фактически внедрил консоль на основе jquery в административной области, где вы можете делать некоторые полезные вещи, такие как включение / отключение модулей и так далее.

Недавно я возился с drupal и решил установить cygwin вместе с drush. Я попытался погуглить, но подумал, что это может быть необычный вопрос: как можно создать CLI для CMS на основе php? И как именно работает Drush Work? Я имею в виду, я знаю, что он запускается из командной строки как пакетный скрипт в Windows. Но как это взаимодействует с PHP и так далее?

Я знаю некоторые базовые C#, но это не должно быть очень сложно, как только я выясню, как это сочетается. (php, sql и т. д.).

Любая помощь приветствуется, спасибо заранее:)

2 ответа

Вы можете запустить php cli из терминала, только если у вас есть php, скомпилированный с поддержкой cli. Дополнительно необходимо указать интерпретатор и передать путь к сценарию в качестве аргумента. Но вы также можете использовать шебанг #!/ Path / to / php. Лучше было бы использовать переменную env, а не жестко указывать путь к php: #!/ Usr / bin / env php. Читайте здесь об этом: http://tech.vg.no/2012/02/21/dont-hardcode-php-executable-path-in-shebang/.

По сути, вы можете написать простую оболочку CLI с бесконечным циклом плюс функции PHP "exec ()" или "shell_exec()". Вы должны получить пользовательские команды и отправить их в функцию shell_exec() для выполнения в системной оболочке и вернуть их результат пользователю.

то есть:

в то время как (TRUE), {

if ($ input! = 'exit') $ output = shell_exec ($ input); еще сломаться;

вывод echo $; }

  • Вы можете добавить другие параметры и настроить этот простой цикл.
  • Вы можете вызывать внешние программы с помощью функции exec ().
Другие вопросы по тегам