Микро-каркас 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: Я написал пакет.