PHPackages                             ivangospodinow/grid - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ivangospodinow/grid

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ivangospodinow/grid
===================

Easy to use event driven php grid

1.0.3(6y ago)45MITPHPPHP ~7.0

Since Sep 4Pushed 1y ago1 watchersCompare

[ Source](https://github.com/ivangospodinow/grid)[ Packagist](https://packagist.org/packages/ivangospodinow/grid)[ RSS](/packages/ivangospodinow-grid/feed)WikiDiscussions dev Synced today

READMEChangelog (4)DependenciesVersions (6)Used By (0)

Grid (php 7) - Microservices Pattern
====================================

[](#grid-php-7---microservices-pattern)

Easy to use event driven grid (table) and general purpose data manager

Strong points
-------------

[](#strong-points)

- Easy to extend, plug in and add new functionality.
- Fast, use only the code you need for each case.
- More is less. More functionality less code.

Goals
-----

[](#goals)

- Support wide range of existing code base. (work in progress)

Grid mind set
-------------

[](#grid-mind-set)

The easy way to think about Grid.php as Service Locator. Grid.php will hold and create (where needed) all objects, that are needed for data filtering and rendering.

Code Example
------------

[](#code-example)

See more: *./examples*

By creating instances

```
$grid = new \Grid\Grid;
$grid[] = new \Grid\Column\Column(
    [
        'name' => 'id',
        'label' => '#'
    ]
);
$grid[] = new \Grid\Column\Column(
    [
        'name' => 'name',
        'label' => 'Name'
    ]
);
$grid[] = new \Grid\Source\ArraySource(
    [
        'driver' => [
            ['id' => 1, 'name' => 'Ivan'],
            ['id' => 2, 'name' => 'Denis'],
            ['id' => 3, 'name' => 'Violeta'],
            ['id' => 4, 'name' => 'Todor']
        ],
        'order' => ['name' => 'ASC']
    ]
);
$grid[] = new \Grid\Renderer\CliRenderer;

echo $grid->render();

Result:
+---+---------+
| # | Name    |
+---+---------+
| 2 | Denis   |
| 1 | Ivan    |
| 4 | Todor   |
| 3 | Violeta |
+---+---------+

```

By creating from config

```
$config = [];
$config[] = [
    'class' => \Grid\Column\Column::class,
    'options' => [
        'name' => 'id',
        'label' => '#'
    ]
];
$config[] = [
    'class' => \Grid\Column\Column::class,
    'options' => [
        'name' => 'name',
        'label' => 'Name'
    ]
];
$config[] = [
    'class' => \Grid\Source\ArraySource::class,
    'options' => [
        'driver' => [
            ['id' => 1, 'name' => 'Ivan'],
            ['id' => 2, 'name' => 'Denis'],
            ['id' => 3, 'name' => 'Violeta'],
            ['id' => 4, 'name' => 'Todor']
        ],
        'order' => ['name' => 'ASC']
    ]
];
$config[] = \Grid\Renderer\CliRenderer::class;

$grid = \Grid\Factory\StaticFactory::factory($config);
echo $grid->render();

Result:
+---+---------+
| # | Name    |
+---+---------+
| 2 | Denis   |
| 1 | Ivan    |
| 4 | Todor   |
| 3 | Violeta |
+---+---------+

```

Motivation
----------

[](#motivation)

After years of doing the same dump table coding, finally went to put an end to this madness. This repo will fit all your needs. Try me!

Installation
------------

[](#installation)

```
composer require ivangospodinow/grid

```

Tests
-----

[](#tests)

Currently 90% unit tested. Run in project directory

```
phpunit

```

Contributors
------------

[](#contributors)

Ivan Gospodinow

License
-------

[](#license)

A short snippet describing the license (MIT, Apache, etc.)

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity61

Established project with proven stability

 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.

###  Release Activity

Cadence

Every ~138 days

Total

4

Last Release

2391d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f5d4fbf0c0c77ea00eee94d84062915dd3c3b92f4ee87d89219f9df0e2ac0da6?d=identicon)[ivangospodinow](/maintainers/ivangospodinow)

---

Top Contributors

[![ivangospodinow](https://avatars.githubusercontent.com/u/16526573?v=4)](https://github.com/ivangospodinow "ivangospodinow (23 commits)")

---

Tags

griddatagridtabledatatablehtml-tablebootstrap table

### Embed Badge

![Health badge](/badges/ivangospodinow-grid/health.svg)

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

###  Alternatives

[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

116.6k](/packages/tomshaw-electricgrid)[tigrang/cakephp-datatable

CakePHP DataTable Plugin

465.1k](/packages/tigrang-cakephp-datatable)

PHPackages © 2026

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