Микро-каркас PHP cli?
Я хочу запрограммировать немного CLI script в PHP, в основном с двумя возможными аргументами, чтобы сделать две разные вещи. Очень просто. Но я хотел бы сделать это элегантным способом.
Мне было интересно, существует ли какая-либо PHP-инфраструктура в режиме CLI (обратите внимание, что я говорю "micro-framework", а не "framework" ). Я хочу использовать PHP, потому что я включу некоторые программируемые классы PHP.
Я нашел CLImax, это конкретная микроструктура CLI и кажется хорошей, но у нее нет хорошей документации.
Знаете ли вы, где я могу найти хорошую документацию CLImax (я ничего не нашел, но его исходный код плохо документирован)?
Или, может быть, вы знаете другой вариант? Alloy кажется легким фреймворком PHP и имеет режим CLI, но я не знаю, слишком ли он общий, поскольку он а также для веб-серверов. Вы использовали его?
Ответы
Ответ 1
Обратите внимание на компонент Symfony Console. Вот введение в его использование. Может потребоваться немного работы, чтобы заставить его работать со старой версией PHP (без пространств имен) и вам нужна пара других компонентов от Symfony, но я использовал ее довольно успешно.
Ответ 2
Я нашел это: php-cli-tools
Это определенно микро и приносит все, что у вас есть с sh или windows.
Ответ 3
У него нет отличной документации из того, что я вижу, но Cilex описывает себя как: -
"облегченная структура для создания скриптов PHP CLI, вдохновленных Silex"
Возможно, стоит взглянуть, я думаю использовать его сам, чтобы заменить сценарии развертывания bash, которые я написал.
Ответ 4
Laravel имеет инструмент командной строки, называемый Artisan, который позволяет вам довольно легко расширять;
Artisan - это имя интерфейса командной строки, включенного в Laravel.... [Artisan Development] В дополнение к командам, предоставленным Artisan, вы также можете создавать свои собственные пользовательские команды для работы с вашим приложением.
См. документацию для разработки Artisan здесь
Ответ 5
Отъезд https://github.com/c9s/CLIFramework
CLIFramework - это полнотекстовая инфраструктура для инструментов командной строки, в отличие от Symfony/Console, у нее есть сжатый API для создания легкого приложения с командной строкой.
Он позволяет вам определять несколько опций и информацию о аргументах для быстрого создания справочного документа.
Самая важная часть состоит в том, что CLIFramework может автоматически генерировать zsh завершение script, поэтому вам не нужно писать zsh script для каждого приложения в командной строке.
![zsh completion generator]()
Ответ 6
Вам может быть интересна моя инфраструктура php cli: https://github.com/b-b3rn4rd/Terminalor
Terminalor - это php-библиотека для создания переносимых файлов php cli. Он обеспечивает необходимую функциональность для работы под интерфейсом cli и может использоваться как оболочка для внешних библиотек. Он позволяет быстро создавать документированные команды cli с аргументами, используя закрытие и комментарии phpdoc. Позже эти команды могут быть скомпилированы в отдельный независимый переносимый файл.
Ответ 7
Вы пробовали Seagull? Похоже, он слишком ориентирован на проекты, которые специально предназначены для использования в CLI.
Ответ 8
Я не думаю, что многие из вышеперечисленных предложений являются микроструктурами, хотя многие из предложений являются отличными рамками - и лучше всего во многих случаях использования, чем мое предложение: https://github.com/diversen/minimal-cli-framework
Это намного быстрее, чем приведенные выше рамки (хотя редко бывает, что вам нужна скорость от CLI-рамки). Он позволяет добавлять подкоманды с использованием объектов класса. Он генерирует справки и определения команд из одного метода. Вам нужно будет только реализовать два метода для существующего класса, чтобы использовать его с минимальной-cli-framework (getCommand
- определение команды и runCommand
- выполнение команды).
Disclaminer: Я написал пакет.