Search
Write a publication
Pull to refresh

Простые консольные команды на PHP

php-console

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

Не буду тянуть резину:

Репозиторий на GitHub

Что умеет?


  • Основной функционал:
    • Console::out(string|array $message, bool $nl, string $style) — вывод данных в консоль:
      • Строкой или массивом строк
      • С последующим переносом строки или без оного
      • Изменение стилей вывода:
        • Console::STYLE_ERROR — сообщение об ошибке
        • Console::STYLE_WARNING — уведомление
        • Console::STYLE_SUCCESS — успешное завершение задачи
        • Console::STYLE_INFO — информационное сообщение
        • Console::STYLE_NOTE — примечание к действию или процессу выполнения
        • Console::STYLE_IMPORTANT — важное сообщение, заголовок
    • Console::in — получение данных от пользователя
    • Console::clear — очистка окна консоли от выведенных данных

  • Дополнительный:
    • Автоматическое формирование списка команд на основе аннотаций


Для чего?


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

А печеньки?


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

/**
 * @help Выводит информацию о скрипте
 */
public function _i() {
	$this->out('Информация о консольном скрипте использующем Console.');
}

Приведенный выше код, при обращении к скрипту php app.php, выведет следующее:

Application Name

Commands list:

-i
	Выводит информацию о сприпте

Подобная справка доступна и при вызове скрипта с ключом -h. Как вы могли заметить, методы объявленные с символом подчеркивания (_) будут приобразованы к стандартным для скриптов в Linux ключам.

Все стандартные сообщения можно перевести на желаемый язык переопределив доступную потомку переменную $lang которая содержит массив сообщений. Название приложения задается с помощью параметра $application_name.

Подробнее о использовании библиотеки можно посмотреть в файле примера.

Замечу что данное решение не тестировалось в ОС Windows.

Спасибо за внимание!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.