PHPackages                             entelisteam/lbaf-consoletable - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. entelisteam/lbaf-consoletable

ActiveLibrary[CLI &amp; Console](/categories/cli)

entelisteam/lbaf-consoletable
=============================

ASCII table renderer for CLI output from LBAF

1.0(today)01↑2900%MITPHPPHP ~8.2

Since Jun 10Pushed todayCompare

[ Source](https://github.com/entelisteam/lbaf-consoletable)[ Packagist](https://packagist.org/packages/entelisteam/lbaf-consoletable)[ RSS](/packages/entelisteam-lbaf-consoletable/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (2)Used By (0)

entelisteam/lbaf-consoletable
=============================

[](#entelisteamlbaf-consoletable)

Рендер ASCII-таблиц для вывода в консоль. Форк PEAR `Console_Table`, переработанный под PHP 8.2 и выделенный из фреймворка LBAF (бывший `Lbaf\Helper\ConsoleTable`).

- multibyte-safe (UTF-8, кириллица — ширина колонок считается корректно);
- ANSI-коды цвета не учитываются в ширине ячеек;
- многострочные ячейки и заголовки;
- выравнивание, фильтры колонок, строки итогов, разделители.

Установка
---------

[](#установка)

```
composer require entelisteam/lbaf-consoletable
```

Требования: PHP ~8.2, ext-mbstring.

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

[](#быстрый-старт)

### Таблица из списка записей — `fromRows()`

[](#таблица-из-списка-записей--fromrows)

Заголовки берутся из ключей первой записи (записи — массивы или объекты):

```
use EntelisTeam\Lbaf\ConsoleTable\ConsoleTable;

echo ConsoleTable::fromRows([
    ['id' => 1, 'name' => 'foo'],
    ['id' => 2, 'name' => 'bar'],
]);
```

```
+----+------+
| id | name |
+----+------+
| 1  | foo  |
| 2  | bar  |
+----+------+

```

Заголовки можно задать явно — тогда записи могут быть простыми списками значений:

```
echo ConsoleTable::fromRows([[1, 'foo'], [2, 'bar']], ['id', 'name']);
```

### Двухколоночная таблица из map — `fromMap()`

[](#двухколоночная-таблица-из-map--frommap)

Каждая пара `ключ => значение` становится строкой, заголовки — `title` / `value`:

```
echo ConsoleTable::fromMap(['host' => 'localhost', 'port' => 3306]);
```

```
+-------+-----------+
| title | value     |
+-------+-----------+
| host  | localhost |
| port  | 3306      |
+-------+-----------+

```

### Донастройка таблицы

[](#донастройка-таблицы)

Обе фабрики принимают последним аргументом `bool $returnObject` — при `true` возвращается объект `ConsoleTable` вместо готовой строки:

```
use EntelisTeam\Lbaf\ConsoleTable\Align;
use EntelisTeam\Lbaf\ConsoleTable\ConsoleTable;

$table = ConsoleTable::fromRows($rows, returnObject: true);
$table->setAlign(2, Align::Right);
echo $table->getTable(); // или просто echo $table — есть __toString()
```

Объектный API
-------------

[](#объектный-api)

```
use EntelisTeam\Lbaf\ConsoleTable\Align;
use EntelisTeam\Lbaf\ConsoleTable\ConsoleTable;

$table = new ConsoleTable(
    align: Align::Left,                    // выравнивание по умолчанию
    border: ConsoleTable::BORDER_ASCII,    // или свой символ рамки, '' — без рамки
    padding: 1,                            // пробелы вокруг содержимого ячейки
    charset: 'utf-8',
);

$table->setHeaders(['name', 'count']);
$table->addRow(['x', 2]);
$table->addRow(['y', 3.5]);
$table->addSeparator();                    // горизонтальный разделитель
$table->addRow(['z', 1]);

$table->setAlign(1, Align::Right);         // выравнивание конкретной колонки
$table->addFilter(0, strtoupper(...));     // callback к каждой ячейке колонки (заголовки не затрагивает)
$table->calculateTotalsFor([1]);           // строка итогов по колонке 1

echo $table->getTable();
```

```
+------+-------+
| name | count |
+------+-------+
| X    |     2 |
| Y    |   3.5 |
+------+-------+
| Z    |     1 |
+------+-------+
|      |   6.5 |
+------+-------+

```

Прочие методы:

- `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`
-------------------------------------

[](#миграция-с-lbafhelperconsoletable)

Пакет поставляет Rector-миграции (реестр — `EntelisTeam\Lbaf\ConsoleTable\Rector\MigrationList`, подхватывается автоматически через [entelisteam/lbaf-rector](https://github.com/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-проекте:

```
composer require --dev rector/rector entelisteam/lbaf-rector
vendor/bin/rector process --dry-run   # посмотреть изменения
vendor/bin/rector process             # применить
```

Не мигрируются автоматически (нужно править руками):

- выравнивание «сырым» числом вместо констант: `setAlign(0, 1)`;
- first-class callable (`ConsoleTable::fromArray(...)`) и spread-аргументы (`...$args`).

Отличия от оригинала
--------------------

[](#отличия-от-оригинала)

Поведение рендеринга сохранено 1:1, но исправлены фаталы оригинала на PHP 8: `addSeparator()`, `calculateTotalsFor()`, `addCol()`, `addData()` и многострочные ячейки падали с `TypeError` (`count(null)` / `count(int)`).

Разработка
----------

[](#разработка)

```
composer install
composer test          # phpunit: тесты рендеринга + тесты rector-миграций
composer rector:check  # rector dry-run
```

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance100

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

0d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5281445?v=4)[Dim Entelis](/maintainers/dentelis)[@dentelis](https://github.com/dentelis)

---

Top Contributors

[![dentelis](https://avatars.githubusercontent.com/u/5281445?v=4)](https://github.com/dentelis "dentelis (3 commits)")

---

Tags

cliconsoleasciitable

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/entelisteam-lbaf-consoletable/health.svg)

```
[![Health](https://phpackages.com/badges/entelisteam-lbaf-consoletable/health.svg)](https://phpackages.com/packages/entelisteam-lbaf-consoletable)
```

###  Alternatives

[symfony/console

Eases the creation of beautiful and testable command line interfaces

9.8k1.1B13.1k](/packages/symfony-console)[nunomaduro/collision

Cli error handling for console/command-line PHP applications.

4.6k348.7M10.4k](/packages/nunomaduro-collision)[nunomaduro/termwind

It's like Tailwind CSS, but for the console.

2.5k260.6M359](/packages/nunomaduro-termwind)[wp-cli/php-cli-tools

Console utilities for PHP

68327.0M372](/packages/wp-cli-php-cli-tools)[php-school/cli-menu

A command line menu helper in PHP

1.9k1.2M30](/packages/php-school-cli-menu)[seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

24726.4M22](/packages/seld-cli-prompt)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
