1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/inhere-php-console

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 10.03.2025 04:34 760bbff

Контрольная консоль PHP

Лицензия Версия PHP Последняя стабильная версия Статус Github Actions Английская версия

Простая и многофункциональная библиотека для создания приложений командной строки на PHP. Она предоставляет анализ параметров командной строки, выполнение команд, цветовое оформление вывода, взаимодействие с пользователем и отображение информации в специальном формате.

ВНИМАНИЕ: Текущая версия v4.1+ требует PHP 8.0+

Пример командной строки

app-command-list

Описание функций

Легко использовать и интегрировать в любое существующее проект.- Приложение командной строки, парсер и запуск контроллеров (controller), команд (command)

  • Поддержка установки псевдонимов для команд, одна команда может иметь несколько псевдонимов.
    • Поддерживает показ/скрытие, активацию/деактивацию команд
  • Управление входными данными input, выходными данными output, управление флагами и их использованием
  • Полнофункциональный парсер опций и аргументов командной строки
    • Именованные аргументы, массивные аргументы
    • Привязка опций короткими (-s) и длинными (--long) ключами
    • НОВОЕ в версии v4 поддерживается определение типов данных (bool, int, string, array), после анализа данные автоматически преобразуются
  • Автоматический парсинг аннотаций методов команд как помощи пользователю
    • По умолчанию извлекаются @usage, @arguments, @options, @example и другие
    • НОВОЕ в версии v4 поддерживается определение типов данных аргументов и опций через аннотации
  • Поддержка регистрации событий слушателями, обработки ошибок и других функций### Дополнительные возможности
  • Поддержка вывода сообщений с различными цветовыми стилями (info, comment, success, warning, danger, error...)
  • Общие специальные форматы отображения информации (section, panel, padding, helpPanel, table, tree, title, list, multiList)
  • Богатый набор средств для отображения динамической информации (pending/loading, pointing, spinner, counterTxt, dynamicText, progressTxt, progressBar)
  • Поддержка взаимодействия пользователя (select, multiSelect, confirm, ask/question, askPassword/askHiddenInput)
  • Поддержка определения заранее заданных параметров в стиле symfony/console (передача значений параметрам по позициям, рекомендовано при строгих ограничениях параметров)
  • Цветной вывод совместим с Windows, Linux, Mac, в средах, где недоступна поддержка цветов, автоматически удаляются соответствующие CODE
  • Быстрое создание скриптов автозаполнения для текущего приложения в окружении bash/zsh

Встроенные инструменты- Встроенная библиотека для создания Phar-файлов, которая позволяет легко упаковать приложение в phar-файл. Это удобно для распространения и использования.

  • Пример выполнения команды php examples/app phar:pack упакует этот консольный модуль в файл app.phar.
  • Встроенная библиотека для скачивания файлов с отображением прогресса через командную строку.
  • Поддержка выделения цветами PHP-кода в командной строке (используется jakub-onderka/php-console-highlighter с некоторыми изменениями).
  • Базовый набор классов для управления экраном терминала и курсором.
  • Базовый набор классов для работы с процессами (включая fork, run, stop, wait и т.д.).Все эти возможности можно проверить, запустив примеры кода в папке examples/. Они охватывают большинство функциональностей.

Адрес проекта

Быстрое установление

  • Требования: PHP 8.0+
composer require inhere/console

Быстрый старт

// файл: examples/app
use Inhere\Console\IO\Input;
use Inhere\Console\IO\Output;

$meta = [
    'name'    => 'Моё консольное приложение',
    'version' => '1.0.2',
];

// Обычно передача $input и $output не требуется, они создаются автоматически
// $app = new \Inhere\Console\Application($meta, $input, $output);
$app = new \Inhere\Console\Application($meta);

// Регистрация команд
$app->command(DemoCommand::class);
// Регистрация группы команд
$app->addGroup(MyController::class);
// ... ...

// Запуск
$app->run();

Запуск примера приложения: php examples/app

Список документов

Обновление с версии v3 до v4

Дополнительные руководства доступны по ссылкам на WIKI.## Единичные тесты

phpunit
// Отображение покрытия без xdebug
phpdbg -dauto_globals_jit=Off -qrr /usr/local/bin/phpunit --coverage-text

Настройка отладки

Вы можете установить уровень отладки с помощью переменной окружения CONSOLE_DEBUG=level или глобального опции --debug level.

# через переменные окружения
$ export CONSOLE_DEBUG=4; php examples/app
$ export CONSOLE_DEBUG=5; php examples/app
# через глобальные опции
$ php examples/app --debug bk 4

Проекты использующие консоль

Просмотрите проекты, использующие https://github.com/inhere/php-console:

  • kite - личный CLI-инструмент для удобства локальной разработки и использования, написанный на PHP
  • Больше примеров, пожалуйста, посмотрите используются в GitHub

Мои другие проекты

  • inhere/php-validate - небольшой и мощный PHP-модуль для валидации данных
  • inhere/sroute - легковесная библиотека маршрутизации HTTP запросов

Внешние зависимости

Лицензия

MIT

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/inhere-php-console.git
git@api.gitlife.ru:oschina-mirror/inhere-php-console.git
oschina-mirror
inhere-php-console
inhere-php-console
master