DownloadPHP ConsoleTable
ConsoleTabe makes you easy to build console style tables. It helps you to display tabular data in terminal/shell. This is a component of PHPLucidFrame. 
License: MIT 
Composer Installation
composer require phplucidframe/console-table
 
Example 1: Bordered Table (Default)
require 'src/LucidFrame/Console/ConsoleTable.php';
 
$table = new LucidFrame\Console\ConsoleTable();
$table
    ->addHeader('Language')
    ->addHeader('Year')
    ->addRow()
        ->addColumn('PHP')
        ->addColumn(1994)
    ->addRow()
        ->addColumn('C++')
        ->addColumn(1983)
    ->addRow()
        ->addColumn('C')
        ->addColumn(1970)
    ->display()
;
 
You can also print the table using getTable method such as echo $table->getTable(); 
Output: 
+----------+------+
| Language | Year |
+----------+------+
| PHP      | 1994 |
| C++      | 1983 |
| C        | 1970 |
+----------+------+
 
Example 2: Bordered Table with Padding Width 2
You can also use setHeaders() and addRow with Arrays. 
require 'src/LucidFrame/Console/ConsoleTable.php';
 
$table = new LucidFrame\Console\ConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->setPadding(2)
    ->display()
;
 
Output: 
+------------+--------+
|  Language  |  Year  |
+------------+--------+
|  PHP       |  1994  |
|  C++       |  1983  |
|  C         |  1970  |
+------------+--------+
 
Example 3: Bordered Table with Left Margin Width 4
require 'src/LucidFrame/Console/ConsoleTable.php';
 
$table = new LucidFrame\Console\ConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->setIndent(4)
    ->display()
;
 
Output: 
    +----------+------+
    | Language | Year |
    +----------+------+
    | PHP      | 1994 |
    | C++      | 1983 |
    | C        | 1970 |
    +----------+------+
 
Example 4: Non-bordered Table with Header
require 'src/LucidFrame/Console/ConsoleTable.php';
 
$table = new LucidFrame\Console\ConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->hideBorder()
    ->display()
;
 
Output: 
 Language  Year
----------------
 PHP       1994
 C++       1983
 C         1970
 
Example 5: Non-bordered Table without Header
require 'src/LucidFrame/Console/ConsoleTable.php';
 
$table = new LucidFrame\Console\ConsoleTable();
$table
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->hideBorder()
    ->display()
;
 
Output: 
 PHP  1994
 C++  1983
 C    1970
 
Example 6: Table with all borders
require 'src/LucidFrame/Console/ConsoleTable.php';
 
$table = new LucidFrame\Console\ConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->showAllBorders()
    ->display()
;
 
Alternatively, you can use addBorderLine() for each row. 
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addBorderLine()
    ->addRow(array('C++', 1983))
    ->addBorderLine()
    ->addRow(array('C', 1970))
    ->display()
;
 
Output 
+----------+------+
| Language | Year |
+----------+------+
| PHP      | 1994 |
+----------+------+
| C++      | 1983 |
+----------+------+
| C        | 1970 |
+----------+------+
 
Test
If you have PHPUnit installed in your machine, you can run test at your project root.  
composer install
phpunit tests
 
If you don't have PHPUnit, you can simply run this in your terminal. 
php example.php
  |