PHPackages                             pentiminax/ux-datatables - 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. pentiminax/ux-datatables

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

pentiminax/ux-datatables
========================

DataTables.net integration for Symfony

v0.61.0(4d ago)728.7k↓61.5%10[4 issues](https://github.com/pentiminax/ux-datatables/issues)MITPHPPHP &gt;=8.3CI failing

Since Feb 28Pushed 3w ago3 watchersCompare

[ Source](https://github.com/pentiminax/ux-datatables)[ Packagist](https://packagist.org/packages/pentiminax/ux-datatables)[ Docs](https://github.com/pentiminax/ux-datatables)[ RSS](/packages/pentiminax-ux-datatables/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (72)Versions (152)Used By (0)

UX DataTables
=============

[](#ux-datatables)

[![Latest Stable Version](https://camo.githubusercontent.com/a1abb2bf5fe96b100f85fb701b4701f7255299f327bfaeaf3e683b0903437ab1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f70656e74696d696e61782f75782d646174617461626c65732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pentiminax/ux-datatables)[![PHP Version](https://camo.githubusercontent.com/53cf60c7b72cc7d25d7fd169470ca40a1ed617774a96caa40666b4a388c1c4eb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f70656e74696d696e61782f75782d646174617461626c65733f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pentiminax/ux-datatables)[![Downloads total](https://camo.githubusercontent.com/0919146828139dbf387719463211f0218254a25910ebaeed8d3db5dd5a58776a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f70656e74696d696e61782f75782d646174617461626c65732e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/pentiminax/ux-datatables/stats)[![Coverage](https://camo.githubusercontent.com/f35933abed85e5047034289cf7698abf957359d9cc909bc6dced6513e61f2403/68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f70656e74696d696e61782f75782d646174617461626c65733f7374796c653d666c61742d737175617265)](https://codecov.io/gh/pentiminax/ux-datatables)

UX DataTables is a Symfony bundle integrating the [DataTables](https://datatables.net)library in Symfony applications.

[Video tutorial](https://youtu.be/qYHRXr_qdPY)

Requirements
------------

[](#requirements)

- PHP 8.3 or higher
- Symfony StimulusBundle (installed through Symfony UX)
- Composer

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

[](#installation)

Install the library via Composer:

```
composer require pentiminax/ux-datatables
```

Usage
-----

[](#usage)

### 1. Declare a DataTable

[](#1-declare-a-datatable)

```
use App\Entity\User;
use Pentiminax\UX\DataTables\Attribute\AsDataTable;
use Pentiminax\UX\DataTables\Column\BooleanColumn;
use Pentiminax\UX\DataTables\Column\DateColumn;
use Pentiminax\UX\DataTables\Column\MoneyColumn;
use Pentiminax\UX\DataTables\Column\NumberColumn;
use Pentiminax\UX\DataTables\Column\TextColumn;
use Pentiminax\UX\DataTables\Model\AbstractDataTable;

#[AsDataTable(User::class)]
final class UserDataTable extends AbstractDataTable
{
    public function configureColumns(): iterable
    {
        return [
            NumberColumn::new('id', 'ID'),
            TextColumn::new('firstName', 'First name'),
            TextColumn::new('email', 'Email'),
            DateColumn::new('createdAt', 'Created at'),
        ];
    }
}
```

Column variants are configured fluently after `new()`:

```
TextColumn::new('name')->utf8();
TextColumn::new('content')->html()->utf8();
NumberColumn::new('price')->formatted();
MoneyColumn::new('price')->currency('EUR')->storedAsCents();
BooleanColumn::new('active')->renderAsSwitch();
TextColumn::new('internalCode')->disableColumnControl();
```

`disableColumnControl()` removes all ColumnControl controls for the column without disabling DataTables search processing.

### 2. Wire it in a controller

[](#2-wire-it-in-a-controller)

```
#[Route('/users', name: 'app_users')]
public function index(UserDataTable $table, Request $request): Response
{
    $table->handleRequest($request);

    if ($table->isRequestHandled()) {
        return $table->getResponse();
    }

    return $this->render('user/index.html.twig', [
        'table' => $table,
    ]);
}
```

### 3. Render in Twig

[](#3-render-in-twig)

```
{{ render_datatable(table) }}
```

> Tip: run `php bin/console make:datatable` to scaffold a DataTable class from any Doctrine entity.

Documentation
-------------

[](#documentation)

- [Online documentation](https://pentiminax.github.io/ux-datatables/)

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance96

Actively maintained with recent releases

Popularity40

Moderate usage in the ecosystem

Community19

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~4 days

Total

112

Last Release

4d ago

PHP version history (2 changes)v0.1.0PHP &gt;=8.2

v0.23.0PHP &gt;=8.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/4866668?v=4)[pentiminax](/maintainers/Pentiminax)[@pentiminax](https://github.com/pentiminax)

---

Top Contributors

[![tlemarie](https://avatars.githubusercontent.com/u/146178261?v=4)](https://github.com/tlemarie "tlemarie (361 commits)")[![pentiminax](https://avatars.githubusercontent.com/u/4866668?v=4)](https://github.com/pentiminax "pentiminax (355 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (20 commits)")[![claude](https://avatars.githubusercontent.com/u/81847?v=4)](https://github.com/claude "claude (6 commits)")[![kranack](https://avatars.githubusercontent.com/u/2787828?v=4)](https://github.com/kranack "kranack (4 commits)")[![aymericcucherousset](https://avatars.githubusercontent.com/u/62072504?v=4)](https://github.com/aymericcucherousset "aymericcucherousset (2 commits)")[![pierredup](https://avatars.githubusercontent.com/u/144858?v=4)](https://github.com/pierredup "pierredup (2 commits)")[![stivex](https://avatars.githubusercontent.com/u/20297008?v=4)](https://github.com/stivex "stivex (1 commits)")

---

Tags

datatablesdatatables-bundlephpsymfony-bundlesymfony-uxsymfony-uxdatatables

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/pentiminax-ux-datatables/health.svg)

```
[![Health](https://phpackages.com/badges/pentiminax-ux-datatables/health.svg)](https://phpackages.com/packages/pentiminax-ux-datatables)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k14](/packages/2lenet-crudit-bundle)

PHPackages © 2026

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