PHPackages                             mechanicious/tableman - 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. mechanicious/tableman

ActiveLibrary

mechanicious/tableman
=====================

Tables made easy

16[3 issues](https://github.com/mechanicious/tableman/issues)PHP

Since Aug 15Pushed 11y ago1 watchersCompare

[ Source](https://github.com/mechanicious/tableman)[ Packagist](https://packagist.org/packages/mechanicious/tableman)[ RSS](/packages/mechanicious-tableman/feed)WikiDiscussions master Synced 6d ago

READMEChangelogDependenciesVersions (12)Used By (0)

We're currently in alpha stage. Come back later or help work on awesum features now.
------------------------------------------------------------------------------------

[](#were-currently-in-alpha-stage-come-back-later-or-help-work-on-awesum-features-now)

Contents
--------

[](#contents)

- [Latest API](http://mechanicious.github.io/tableman/)
- [Tableman](https://github.com/mechanicious/tableman#tableman)
- [Tableman Modularity](https://github.com/mechanicious/tableman#tableman-modularity)
- [What's included](https://github.com/mechanicious/tableman#whats-included)
- [Tableman usecases](https://github.com/mechanicious/tableman#tableman-usecases)
- Wiki
    - [Data Modeling Inside of Tableman](https://github.com/mechanicious/tableman/wiki/Data-Modeling-Inside-Tableman)

Tableman
--------

[](#tableman)

Tables are a great way to represent data. Almost every type of data can be represented as a table. However not every table can represent every type of data. Tableman was created to totally unleash the potential of tables. The powefull API makes it possible for Tableman to easily fit every type of data and any type of need.

Tableman Modularity
-------------------

[](#tableman-modularity)

Tableman exists out of four main modules, wich are: Tableman, Columnizer, Collection and TablemanExtension. The Tableman module is reponsible for the API to manipulate data. Columnizer is responsible to translate many types and formats of data into something that Tableman will be able to work with. Collection (borrwed from Laravel 4) is reponsible for enrichement of the API, many generic methods are included with Collection that work very well. TablemanExtension is a module reposonsible of providing an API to Tableman Extension Developers which makes it easier to extend Tableman with own features.

What's included
---------------

[](#whats-included)

These are things you might want to exclude from your package if you already have them.

> Note: For foreign libraries default mappings are used so for example Laravel 4 Collection would be mapped to Illuminate\\Support\\Collection

- Laravel 4 Collection
- Laravel 4 helper methods
- Tests

Tableman usecases
-----------------

[](#tableman-usecases)

- Apply filters based on cell's content
- Capitalize names
- Convert image-links into image-elements
- Escape HTML-entities
- Keep your templates clean
- Remove columns you want to hide
- Translate the column headers
- Wrap certain rows in an HTML-wrapper that are a member of some column
- Sort columns
- Sort rows
- Translate foreign key of your table into human-friendly data
- Add a column "actions" with links that'll map to your update or delete route
- Split a table into several pieces you could distribute over the page
- Display different tables using same template
- and all other sorts of data manipulation!

Conversion
----------

[](#conversion)

Tableman allows you to convert one of the *Tableman Supported Data-Types* into a *Tableman Supported Conversion Type*. After you make the conversion you can then again re-convert the table to the data-type you've started with.

**Tableman Supported Data-Types**

- Array
- JSON

**Tableman Supported Conversion Types**

- Array
- JSON
- HTML
- HTML Bootstrap 3 Table

Example
-------

[](#example)

```
$data = array(
    array(
        'id'    => 1,
        'name'  => 'Joe',
        'age'   => 25
    ),
    array(
        'id'    => 2,
        'name'  => 'Tony',
        'age'   => 27
    ),
);
$columnizer = new Columnizer($data); // Data conversion
$tableman   = new Tableman($columnizer->columnizeRowArray()); // Data modeling

// Custom filters
$tableman->eachRow(function(&$_this, &$row, $index) {
    if($row['id'] === 1) unset($row);
})

// Custom extensions
$tableman->Bs3Table(new Config(array(
 // Plugin-like configuration
 'config'=>array(),
 'header'=> array(),
 'extra_classes'=>array()
));
```

###  Health Score

18

—

LowBetter than 8% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity50

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/80c92ad8f5bd78ebf412f8166c8eac07f4be239534fa9b4189a196c048f9bb5f?d=identicon)[mechanicious](/maintainers/mechanicious)

---

Top Contributors

[![mechanicious](https://avatars.githubusercontent.com/u/8450319?v=4)](https://github.com/mechanicious "mechanicious (47 commits)")

### Embed Badge

![Health badge](/badges/mechanicious-tableman/health.svg)

```
[![Health](https://phpackages.com/badges/mechanicious-tableman/health.svg)](https://phpackages.com/packages/mechanicious-tableman)
```

PHPackages © 2026

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