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

2.0(3w ago)09↓80%1MITPHPPHP ~8.2

Since Jun 10Pushed 1mo agoCompare

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

READMEChangelogDependencies (5)Versions (5)Used By (1)

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

[](#entelisteamlbaf-consoletable)

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

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

```

Обе фабрики возвращают готовую строку — это весь публичный API.

Миграция с `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_..._ConsoleTableFactoryMethods``fromArray()` → `fromRows()`, `from2dArray($h, $d)` → `fromRows($d, $h)`, `fromKeyTitleArray()` → `fromMap()``Migration_..._ConsoleTableRemoveReturnObject`помечает TODO-комментарием вызовы, передававшие `$returnObject` — параметр удалён, нужен ручной рефакторингВ downstream-проекте:

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

**Внимание:** объектный API оригинала (`setHeaders`/`addRow`/`setAlign`/`getTable` и т.д.) в пакете отсутствует — миграции покрывают только вызовы фабрик. Код, использующий объектный API, нужно переводить на `fromRows()`/`fromMap()` вручную.

Также не мигрируются автоматически first-class callable (`ConsoleTable::fromArray(...)`) и spread-аргументы (`...$args`).

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

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

Публичный API сокращён до фабрик `fromRows()`/`fromMap()`, возвращающих строку; формат вывода для этих сценариев сохранён 1:1.

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

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

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

Версионирование
---------------

[](#версионирование)

Все пакеты LBAF следуют [SemVer](https://semver.org):

- **Major (`1.x` → `2.0`)** — слом обратной совместимости публичного API. Каждое такое изменение сопровождается Rector-миграцией (см. [lbaf-rector](https://github.com/entelisteam/lbaf-rector)). Обновляется только вручную: поднять constraint в `composer.json` и выполнить `composer update`.
- **Minor (`1.2` → `1.3`)** — новая функциональность, обратная совместимость сохранена.
- **Patch (`1.2.0` → `1.2.1`)** — исправления без изменения публичного API.

Правило: **если изменение требует Rector-миграции — это major**, иначе minor или patch.

Зависимости на пакеты LBAF указываются через caret (`"entelisteam/lbaf-*": "^1.2"`): minor и patch подтягиваются обычным `composer update`, major автоматически не устанавливается. После обновления Rector-миграции применяются автоматически (хук `post-update-cmd`); если хук не настроен — выполните `composer rector:fix`.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance93

Actively maintained with recent releases

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity49

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

Every ~7 days

Total

4

Last Release

23d ago

Major Versions

1.1.0 → 2.02026-07-03

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

Static AnalysisRector

### 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.1B14.3k](/packages/symfony-console)[nunomaduro/collision

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

4.7k357.7M11.5k](/packages/nunomaduro-collision)[nunomaduro/termwind

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

2.5k271.5M393](/packages/nunomaduro-termwind)[wp-cli/php-cli-tools

Console utilities for PHP

68227.8M376](/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

24826.6M24](/packages/seld-cli-prompt)

PHPackages © 2026

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