Написание 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 ().