macropage / php-to-ascii-table
A PHP library to generate plain text tables.
v2.0
2020-01-21 09:14 UTC
Requires
- php: ^7
- ext-mbstring: *
- php-ds/php-ds: ^1.1
Requires (Dev)
- phpunit/phpunit: @stable
- vimeo/psalm: @stable
This package is auto-updated.
Last update: 2024-11-25 20:52:54 UTC
README
A small PHP library for generating plain text tables.
Getting Started
Prerequisites
- PHP >= 7
- ext-mbstring
- Optionally Install php-ds extension (Recommended).
Installation
Install via composer:
$ composer require malios/php-to-ascii-table
Usage
<?php $builder = new \AsciiTable\Builder(); $builder->addRows([ [ 'Order No' => 'A0001', 'Product Name' => 'Intel CPU', 'Price' => 700.00, 'Quantity' => 1 ], [ 'Order No' => 'A0002', 'Product Name' => 'Hard disk 10TB', 'Price' => 500.00, 'Quantity' => 2 ], [ 'Order No' => 'A0003', 'Product Name' => 'Dell Laptop', 'Price' => 11600.00, 'Quantity' => 8 ], [ 'Order No' => 'A0004', 'Product Name' => 'Intel CPU', 'Price' => 5200.00, 'Quantity' => 3 ] ]); $builder->addRow([ 'Order No' => 'A0005', 'Product Name' => 'A4Tech Mouse', 'Price' => 100.00, 'Quantity' => 10 ]); $builder->setTitle('Product List'); echo $builder->renderTable(); // Show only some fields $builder->showColumns(['Order No', 'Product Name', 'Quantity']); echo $builder->renderTable();
Build table from objects
You can build table form any object that implements JsonSerializable interface.
<?php class Person implements \JsonSerializable { private $name; private $age; public function __construct(string $name, int $age) { $this->name = $name; $this->age = $age; } public function jsonSerialize() { return [ 'name' => $this->name, 'age' => $this->age ]; } } $builder = new \AsciiTable\Builder(); $builder->addRow(new Person('John', 25)); $builder->addRow(new Person('Bill', 30)); echo $builder->renderTable();
Contributing
All contributors are welcome. You can open a new issue or submit a pull request. See CONTRIBUTING.md for details.
License
This project is licensed under the MIT License - see the LICENSE.md file for details.