- PVSM.RU - https://www.pvsm.ru -
Делал для себя скрипт для деплоя сайта на продакшен. Для чего нужно было выводить на экран что происходит. И чтобы было нагляднее решил выводить в цвете. Однако не смог найти что-то подходящее. Максимум библиотека выводила цветной текст, но не поддерживала отступы. Поэтому сделал свою библиотеку для этого. Возможно кому-то будет полезно. Небольшая (но функциональная) библиотека для вывода на консоль цветного текста с поддержкой отступов в таком вот виде
Console::indent(2)->color('brown')->bgcolor('magenta')->writeln('Привет Habr!');
Для установки можно воспользоваться composer
composer require shasoft/console
или скачать с github [1]
Список всех поддерживаемых цветов. Имена колонок — цвета фона, имена строк — цвета текста.
Вывод цветного текста
use ShasoftConsoleConsole;
// Вывод цветного текста в строке
Console::color('red')->bgcolor('green')->write('Красный текст на зеленом фоне')->enter();
// Вывод цветного текста в строке
Console::color('green')->bgcolor('red')->writeln('Зеленый текст на красном фоне');
// Вывод цветного текста в строке
Console::color('red')->bgcolor('white')->write('Красный текст на белом фоне фоне')->reset()->writeln('Вывод текста цветом по умолчанию');
Для работы с отступами служит функция indent(значение отступа[,абсолютное значение]) — если указан второй параметр и он = true, то отступ абсолютный. Иначе отступ относительный. Для получения текущего отступа нужно вызвать функцию indent() без параметров.
Пример:
use ShasoftConsoleConsole;
Console::indent(0,true); // Отступ 0
Console::indent(1)->color('red')->writeln('Отступ 1');
Console::indent(3,true)->color('green')->writeln('Отступ 3');
Console::indent(-1)->color('blue')->writeln('Отступ 2');
К примеру был отступ = 2 indent(1) Отступ = 3
К примеру был отступ = 2 indent(-1) Отступ = 2
К примеру был отступ = 2 indent(10) Отступ = 10
К примеру был отступ = 2 indent(1) Отступ = 1
вывод:
функция indent применяется к выводимой СТРОКЕ и значение будет меняться до вызова функции enter(). Т.е. вот этот код выведет строку с отступом 3
Console::indent(0,true)->color('red')->indent(1)->bgcolor('blue')->indent(1)->write('Отступ 3')->indent(1)->enter();
Можно указать стили. По умолчанию задан стиль ошибок "error"
Пример использования:
Console::indent(1,true)->style("error")->writeln('Какая-то ошибка');
вывод:
Имеются специальные функции для контроля логирования
Значения выводятся на экран с помощью функции write() только в случае если текущий уровень логирования меньше-равен глобальноному уровню логирования.
Пример:
Console::setLogLevel(0)->logLevel(1)->writeln('Не выведется, так как уровень логирования = 1 который больше 0');
Console::setLogLevel(2)->logLevel(1)->writeln('Выведется, так как уровень логирования = 1 который меньше-равен 2');
Console::setLogLevel(2)->logLevel(3)->write('Этот текст не выведется')->logLevel(1)->write('Текст на экране')->enter();
Чтобы не писать color('red')->bgcolor('green') можно писать в коротком виде
Console::red()->bg_green()->writeln('Строка красного цвета на зеленом фоне.');
Цвет фона можно задавать функцией без подчеркивания. Однако оно визуально отделяет цвет от префикса и, на мой взгляд, весьма удобна.
upd: раз уж мне указали на ошибку в имени функции ident вместо indent, то я её исправил чтобы не смущать тех, кто знает английский хорошо :)
Автор: shasoft
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/301347
Ссылки в тексте:
[1] github: https://github.com/shasoft/console
[2] var_export: http://php.net/manual/ru/function.var-export.php
[3] Страница библиотеки: http://shasoft.com/article/klass_php_dlya_vyvoda_v_konsol_tsvetnogo_teksta
[4] Источник: https://habr.com/post/432242/?utm_campaign=432242
Нажмите здесь для печати.