Download the PHP package entelisteam/lbaf-consoletable without Composer
On this page you can find all versions of the php package entelisteam/lbaf-consoletable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download entelisteam/lbaf-consoletable
More information about entelisteam/lbaf-consoletable
Files in entelisteam/lbaf-consoletable
Package lbaf-consoletable
Short Description ASCII table renderer for CLI output from LBAF
License MIT
Informations about the package lbaf-consoletable
entelisteam/lbaf-consoletable
Рендер ASCII-таблиц для вывода в консоль. Форк PEAR Console_Table, переработанный под PHP 8.2 и выделенный из фреймворка LBAF (бывший Lbaf\Helper\ConsoleTable).
- multibyte-safe (UTF-8, кириллица — ширина колонок считается корректно);
- ANSI-коды цвета не учитываются в ширине ячеек;
- многострочные ячейки и заголовки;
- выравнивание, фильтры колонок, строки итогов, разделители.
Установка
Требования: PHP ~8.2, ext-mbstring.
Быстрый старт
Таблица из списка записей — fromRows()
Заголовки берутся из ключей первой записи (записи — массивы или объекты):
Заголовки можно задать явно — тогда записи могут быть простыми списками значений:
Двухколоночная таблица из map — fromMap()
Каждая пара ключ => значение становится строкой, заголовки — title / value:
Донастройка таблицы
Обе фабрики принимают последним аргументом bool $returnObject — при true возвращается объект ConsoleTable вместо готовой строки:
Объектный API
Прочие методы:
addRow(array $row, bool $append = true)—falseдобавляет строку в начало;insertRow(array $row, int $rowId = 0)— вставка перед строкой$rowId;addCol(array $colData, int $colId = 0, int $rowId = 0)— добавить колонку;addData(array $data, int $colId = 0, int $rowId = 0)— добавить двумерный массив; элементConsoleTable::HORIZONTAL_RULEвместо строки вставляет разделитель;setCharset(string $charset)— кодировка данных (по умолчаниюutf-8).
Многострочные ячейки (\n внутри значения) автоматически разбиваются на несколько строк таблицы.
Миграция с Lbaf\Helper\ConsoleTable
Пакет поставляет Rector-миграции (реестр — EntelisTeam\Lbaf\ConsoleTable\Rector\MigrationList, подхватывается автоматически через entelisteam/lbaf-rector):
| Миграция | Что делает |
|---|---|
Migration_..._ConsoleTableSplit |
Lbaf\Helper\ConsoleTable → EntelisTeam\Lbaf\ConsoleTable\ConsoleTable |
Migration_..._ConsoleTableAlignEnum |
константы ConsoleTable::ALIGN_* → enum Align::Left/Center/Right |
Migration_..._ConsoleTableFactoryMethods |
fromArray() → fromRows(), from2dArray($h, $d) → fromRows($d, $h), fromKeyTitleArray() → fromMap() |
В downstream-проекте:
Не мигрируются автоматически (нужно править руками):
- выравнивание «сырым» числом вместо констант:
setAlign(0, 1); - first-class callable (
ConsoleTable::fromArray(...)) и spread-аргументы (...$args).
Отличия от оригинала
Поведение рендеринга сохранено 1:1, но исправлены фаталы оригинала на PHP 8: addSeparator(), calculateTotalsFor(), addCol(), addData() и многострочные ячейки падали с TypeError (count(null) / count(int)).
Разработка
All versions of lbaf-consoletable with dependencies
ext-mbstring Version *