Микрофреймворк для командных приложений для обработки данных на php или python?

Вот что я использую для создания приложений командной строки php для обработки данных.

Эти приложения не являются веб-приложениями, они запускаются в оболочке командной строки для обработки некоторых данных.

По причине Legacy я использую php-фреймворк Laravel.

Поэтому я использую Laravel «Artisan Development» для создания пользовательских команд, а затем запускаю команды, используя

php artisan ...

Laravel предназначен для веб-приложения, но сейчас я использую только его ремесленные команды. Кажется излишним, что для этой цели я устанавливаю полную версию Laravel Framework.

Но я не смог найти хороший php-микрофреймворк специально для создания приложения команд.

Мои вопросы

  • Как и Lumen, микрофреймворк Laravel для API, есть ли у вас какой-нибудь микрофреймворк laravel/php для команд, который вы можете порекомендовать?
  • Или вы можете порекомендовать какие-либо микрофреймворки Python для командных приложений? Я погуглил, рекомендуется "Click". Какие еще фреймворки?

Спасибо!

У меня есть один, который я сделал, если хотите, Гитхаб, он настолько мал, насколько это возможно, это как 1 файл. Должен быть довольно прост в использовании.

ArtisticPhoenix 07.03.2019 01:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
122
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Для Python я определенно рекомендую Нажмите. Она стала библиотекой Python в для создания инструментов командной строки. Он написан/поддерживается автором Колба (в настоящее время репозиторий Python №5 по количеству звезд на GitHub). Я постоянно использую Click при создании инструментов командной строки. В нем есть все, что нужно большинству людей.

Не знаю, какое у вас определение микрофреймворка, но Click не имеет внешних зависимостей и занимает ок. 500 КБ (включая файлы .pyc) при установке. Кроме того, для установки и начала использования не требуется никаких шаблонов. Так что я бы назвал это микро-фреймворком.

github.com/google/python-огонь Как насчет Python Fire? Если я собираюсь запускать команды на GCP, будет ли python-fire хорошим выбором? из-за этого поддерживается Google?
searain 07.03.2019 01:53

Я сделал эту небольшую библиотеку,

https://github.com/ArtisticPhoenix/Cli

Добро пожаловать, чтобы использовать его или черпать из него вдохновение, в основном это обертка вокруг getopt()

http://php.net/manual/en/function.getopt.php

getopt — Gets options from the command line argument list

Вы также можете получить его на композиторе:

"require" : {
    "evo/cli" : "~1.0"
}

Основное использование выглядит так:

$Cli = Cli::getInstance();
$Cli->setArgument('h', 'help', 'Show this help document');
//... other arguments 
if ($Cli->getArgument('h')) $Cli->printHelpDoc(); //exits

И так далее.

Вы даже можете сделать это из конфигурационного файла PHP, который в основном просто помещается в setArgument() ~.

//config.php
return [
         [
           'shortName' => 'h',
           'longName' => 'help',
           'doc' => 'Show this help document'
         ]
      ];

потом

  //cli.php

  $config = require 'config.php';

  $Cli = Cli::getInstance();
  $Cli->fromConfig($config);

  if ($Cli->getArgument('h')) $Cli->printHelpDoc(); //exits

Вы также можете выполнить динамическую проверку входных аргументов следующим образом (с замыканием):

    $Cli->setArgument('f', 'foo', 'This is just foo, and must always be foo', [
        'accept' => function($shortName, $value){
            if ($value == 'foo') return true;
            return false;
        }
    ]);

Вышеприведенное просто возвращает логическое значение, если значение хорошее или нет. Если вы вернете false, будет выдано исключение и т. д. Вы также можете сделать требуемый аргумент следующим образом:

   $Cli->setArgument('i', 'input', 'This is input that requires a value', [
       'requireValue' => true
   ]);

И, конечно, вы можете совместить эти 2.

На странице Github есть некоторая документация. У него есть несколько небольших зависимостей, просто обычные вещи, которые мне нравится повторно использовать (все в композиторе). Вместе это меньше 1000 строк кода. Может быть 20 или 30кб.

Мне нужно было сделать небольшую штуку с командной строкой, и у меня появилась идея...

Другие вопросы по теме