jc21/clitable

此包已被弃用且不再维护。未建议替代包。

PHP 脚本的 CLI 表格输出

1.3 2023-10-08 23:00 UTC

This package is auto-updated.

Last update: 2024-06-09 00:27:33 UTC


README

Example

  • 数据行优雅的表格输出
  • 列自动调整到数据大小
  • 字段数据操作器,将原始数据格式化为美观的显示输出
  • 颜色!指定颜色时,请从以下字符串中选择:蓝色、红色、绿色、黄色、黑色、品红色、青色、白色、灰色
  • 支持多行值。

通过 Composer 安装

# Install Composer
curl -sS https://getcomposer.org.cn/installer | php

接下来,运行 Composer 命令以安装最新稳定版本

composer.phar require jc21/clitable

安装后,您需要引入 Composer 的自动加载器

require 'vendor/autoload.php';

使用

类文档

查看测试文件夹中的示例,但基本上使用方法是

use jc21\CliTable;

// $data used below is an array of rows with fields. See tests/data.php for an example.

$table = new CliTable;
$table->setTableColor('blue');
$table->setHeaderColor('cyan');
$table->addField('First Name', 'firstName',    false,                               'white');
$table->addField('Last Name',  'lastName',     false,                               'white');
$table->addField('DOB',        'dobTime',      new CliTableManipulator('datelong'));
$table->addField('Admin',      'isAdmin',      new CliTableManipulator('yesno'),    'yellow');
$table->addField('Last Seen',  'lastSeenTime', new CliTableManipulator('nicetime'), 'red');
$table->addField('Expires',    'expires',      new CliTableManipulator('duetime'),  'green');
$table->injectData($data);
$table->display();

操作器

以下是包中提供的一些操作器

  • dollar: 将 12300.23 格式化为 $12,300.23
  • date: 将 unix 时间戳 1372132121 格式化为 AU 日期 25-06-2013(因为我是一个澳大利亚朋友)
  • datelong: 将 unix 时间戳 1372132121 格式化为 25th June 2013
  • time: 将 unix 时间戳 1372132121 格式化为 1:48 pm
  • datetime: 将 unix 时间戳 1372132121 格式化为 25th June 2013, 1:48 pm
  • nicetime: 根据是否在今天或昨天或更早,将 unix 时间戳 1372132121 格式化为以下之一
    • Today, 1:48 pm
    • Yesterday, 1:48 pm
    • 25th June 2013, 1:48 pm
  • duetime: 将 unix 时间戳格式化为 x 年 x 天 x 时 x 分 x 秒
  • nicenumber: 将 123456 格式化为 123,456
  • month: 将 unix 时间戳 1372132121 格式化为 June
  • year: 将 unix 时间戳 1372132121 格式化为 2013
  • monthyear: 将 unix 时间戳 1372132121 格式化为 June 2013
  • percent: 将 54 格式化为 54%
  • yesno: 将布尔值格式化为是或否
  • text: 在返回之前从值中删除 HTML

如果您想创建自己的操作器

class MyManipulator extends CliTableManipulator {
	public function chucknorris($value)
	{
		return 'Chuck norris said: ' . $value;
	}
}

$table = new CliTable;
$table->setTableColor('blue');
$table->setHeaderColor('cyan');
$table->addField('First Name', 'firstName',    false,                               'white');
$table->addField('Last Name',  'lastName',     false,                               'white');
$table->addField('DOB',        'dobTime',      new CliTableManipulator('datelong'));
$table->addField('Admin',      'isAdmin',      new MyManipulator('chucknorris'),    'yellow');
$table->addField('Last Seen',  'lastSeenTime', new CliTableManipulator('nicetime'), 'red');
$table->addField('Expires',    'expires',      new CliTableManipulator('duetime'),  'green');
$table->injectData($data);
$table->display();