PHP Cli Micro-Framework? - PullRequest
       3

PHP Cli Micro-Framework?

19 голосов
/ 26 августа 2011

Я хочу запрограммировать небольшой скрипт CLI на PHP, в основном с двумя возможными аргументами, чтобы сделать две разные вещи.Очень просто.Но я хотел бы сделать это элегантным способом.

Мне было интересно, существует ли какая-то функциональная часть микро-фреймворка PHP в режиме CLI (обратите внимание, что я говорю микро-фреймворк, а не фреймворк).Я хочу использовать PHP, потому что я включу некоторые уже запрограммированные PHP-классы.

Я нашел CLImax , который представляет собой специфическую микро-инфраструктуру CLI и кажется хорошим, но в нем нет хорошегодокументация.

Вы знаете где-нибудь, где я могу найти хорошую документацию CLImax (я ничего не нашел, но ее исходный код плохо документирован)?

Или, может быть, вы знаете другой вариант? Alloy выглядит также легковесной средой PHP и имеет CLI-режим, но я не знаю, слишком ли он универсален, как и для веб-серверов.Вы использовали это?

Ответы [ 8 ]

19 голосов
/ 26 августа 2011

Ознакомьтесь с компонентом Symfony Console . Вот введение в его использование. Может потребоваться немного усилий, чтобы заставить его работать с более старой версией PHP (без пространств имен), и вам понадобится пара других компонентов из Symfony, но я 'мы использовали его довольно успешно.

7 голосов
/ 09 февраля 2012

Я нашел это: php-cli-tools

Это определенно микро и приносит все, что у вас будет с sh или Windows.

6 голосов
/ 22 декабря 2013

Из того, что я вижу, нет отличной документации, но Cilex описывает себя как: -

"облегченная структура для создания сценариев PHP CLI, вдохновленная Silex"

Может быть стоит посмотреть, я подумываю использовать его сам, чтобы заменить сценарии развертывания bash, которые я написал.

3 голосов
/ 08 июля 2014

Извлечение https://github.com/c9s/CLIFramework

CLIFramework - это полнофункциональный каркас для инструментов командной строки, в отличие от Symfony / Console, он обладает лаконичным API для создания облегченного приложения командной строки.

Он позволяет вам определить несколько параметров и информацию об аргументах для быстрого создания справочного документа.

Самая важная часть заключается в том, что CLIFramework может автоматически генерировать сценарий завершения zsh, поэтому вам не нужно писать сценарий zsh для каждогоприложение командной строки.

zsh completion generator

3 голосов
/ 28 декабря 2013

Laravel имеет инструмент командной строки под названием Artisan , который позволяет довольно легко расширяться;

Artisan - этоимя интерфейса командной строки, включенного в Laravel .... [Artisan Development] В дополнение к командам, поставляемым с Artisan, вы также можете создавать свои собственные команды для работы с вашим приложением.

См. Документацию по разработке Artisan здесь

1 голос
/ 30 декабря 2016

Я не думаю, что многие из приведенных выше предложений являются микро-фреймворками - хотя многие из них являются отличными фреймворками - и, соответственно, лучше во многих случаях использования, чем мое предложение: https://github.com/diversen/minimal-cli-framework

Этогораздо быстрее, чем вышеупомянутые фреймворки (хотя редко требуется скорость от CLI-фреймворка).Это позволяет вам добавлять подкоманды, используя объекты класса.Он генерирует справку и определения команд из одного метода.Вам нужно будет только реализовать два метода в существующем классе, чтобы использовать его с каркасом minimal-cli (getCommand - определение команды и runCommand - выполнение команды).

DisclaminerЯ написал пакет.

1 голос
/ 20 июня 2012

Вы пробовали Чайка ? Похоже, он слишком изначально поддерживает проекты, специально предназначенные для использования в CLI.

1 голос
/ 22 февраля 2012

Вас может заинтересовать мой php cli framework: https://github.com/b-b3rn4rd/Terminalor Terminalor - это библиотека php для создания переносимых файлов php cli.Он обеспечивает необходимую функциональность для работы под интерфейсом cli и может использоваться в качестве оболочки для внешних библиотек.Это позволяет быстро создавать документированные команды cli с аргументами, используя замыкания и комментарии phpdoc.Позже эти команды могут быть скомпилированы в один независимый переносимый файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...