console table

其他类别 2025-07-29

PHP固定

Consoletabe使您易于构建控制台样式表。它可以帮助您在终端/外壳中显示表格数据。这是phplucidframe的组成部分。

许可证:麻省理工学院

作曲家安装

 composer require phplucidframe/console-table

示例1:边框表(默认)

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->addHeader('Language')
    ->addHeader('Year')
    ->addRow()
        ->addColumn('PHP')
        ->addColumn(1994)
    ->addRow()
        ->addColumn('C++')
        ->addColumn(1983)
    ->addRow()
        ->addColumn('C')
        ->addColumn(1970)
    ->display()
;

您还可以使用getTable方法(例如echo $table->getTable();

输出

 +----------+------+
| Language | Year |
+----------+------+
| PHP      | 1994 |
| C++      | 1983 |
| C        | 1970 |
+----------+------+

示例2:带填充宽度的边界表2

您也可以将setHeaders()addRow与数组一起使用。

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->setPadding(2)
    ->display()
;

输出

 +------------+--------+
|  Language  |  Year  |
+------------+--------+
|  PHP       |  1994  |
|  C++       |  1983  |
|  C         |  1970  |
+------------+--------+

示例3:带有左边缘宽度4的边界表4

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->setIndent(4)
    ->display()
;

输出

    +----------+------+
    | Language | Year |
    +----------+------+
    | PHP      | 1994 |
    | C++      | 1983 |
    | C        | 1970 |
    +----------+------+

示例4:带标头的非海底表

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->hideBorder()
    ->display()
;

输出

 Language  Year
----------------
 PHP       1994
 C++       1983
 C         1970

示例5:无标题的非船舶表

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->hideBorder()
    ->display()
;

输出

 PHP  1994
 C++  1983
 C    1970

示例6:具有所有边界的表

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addRow(array('C++', 1983))
    ->addRow(array('C', 1970))
    ->showAllBorders()
    ->display()
;

另外,您可以为每一行使用addBorderLine()

 $table
    ->setHeaders(array('Language', 'Year'))
    ->addRow(array('PHP', 1994))
    ->addBorderLine()
    ->addRow(array('C++', 1983))
    ->addBorderLine()
    ->addRow(array('C', 1970))
    ->display()
;

输出

 +----------+------+
| Language | Year |
+----------+------+
| PHP      | 1994 |
+----------+------+
| C++      | 1983 |
+----------+------+
| C        | 1970 |
+----------+------+

示例7:带有列对齐的表

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->addHeader('A')
    ->addHeader('B', ConsoleTable::ALIGN_RIGHT) # ALIGN_LEFT or ALIGN_RIGHT (ALIGN_LEFT is default)
    ->addHeader('C')
    ->addRow()
        ->addColumn('X')
        ->addColumn('Hello', null, null, ConsoleTable::ALIGN_RIGHT)
        ->addColumn('Nice')
    ->addRow()
        ->addColumn('Y')
        ->addColumn('Hello, how are you?')
        ->addColumn('OK', null, null, ConsoleTable::ALIGN_RIGHT)
    ->display();

输出

 +---+---------------------+------+
| A |                   B | C    |
+---+---------------------+------+
| X |               Hello | Nice |
| Y | Hello, how are you? |   OK |
+---+---------------------+------+

示例8:带标头和页脚的桌子边界

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->addHeader('Name')
    ->addHeader('Age')
    ->addRow()
        ->addColumn('John')
        ->addColumn(25, null, null, ConsoleTable::ALIGN_RIGHT)
    ->addRow()
        ->addColumn('Jane')
        ->addColumn(23, null, null, ConsoleTable::ALIGN_RIGHT)
    ->addFooter('Total')
    ->addFooter('48', ConsoleTable::ALIGN_RIGHT)
    ->display();

输出

 +-------+-----+
| Name  | Age |
+-------+-----+
| John  |  25 |
| Jane  |  23 |
+-------+-----+
| Total |  48 |
+-------+-----+

示例9:带标头和页脚的非海底表

 $table = new LucidFrameConsoleConsoleTable();
$table
    ->setHeaders(array('Name', 'Age'))
    ->addRow(array('John', 25))
    ->addRow(array('Jane', 23))
    ->setFooters(array('Total', 48))
    ->hideBorder()
    ->display();

输出

 Name   Age 
-----------
John   25  
Jane   23  
-----------
Total  48  

测试

使用Phpunit,您可以在终端中运行此操作。

 composer install
vendorbinphpunit tests

没有phpunit,您只需在终端中运行它即可。

 php example.php
下载源码

通过命令行克隆项目:

git clone https://github.com/phplucidframe/console-table.git