PHPackages                             kreyu/data-table-bundle - 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. kreyu/data-table-bundle

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

kreyu/data-table-bundle
=======================

Streamlines creation process of the data tables

v0.32.2(7mo ago)11299.6k↓31%23[12 issues](https://github.com/Kreyu/data-table-bundle/issues)[11 PRs](https://github.com/Kreyu/data-table-bundle/pulls)MITPHPPHP ^8.1CI passing

Since Feb 27Pushed 7mo ago9 watchersCompare

[ Source](https://github.com/Kreyu/data-table-bundle)[ Packagist](https://packagist.org/packages/kreyu/data-table-bundle)[ GitHub Sponsors](https://github.com/Kreyu)[ RSS](/packages/kreyu-data-table-bundle/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (21)Versions (142)Used By (0)

 [![](./docs/src/public/logo.png)](./docs/src/public/logo.png)
DataTableBundle

[](#--------------------datatablebundle----)

 Streamlines the creation process of the data tables in Symfony applications.
 [About](#about) · [Documentation](https://data-table-bundle.swroblewski.pl/) · [Reference](https://https://data-table-bundle.swroblewski.pl/reference/types/data-table.html)

About
-----

[](#about)

This bundle allows creating data tables in the same way as you probably do with forms, as every component can be defined with a [type class](https://data-table-bundle.swroblewski.pl/docs/introduction#similarity-to-form-component) and reused across the application.

Data tables can be [sorted](https://data-table-bundle.swroblewski.pl/docs/features/sorting), [filtered](https://data-table-bundle.swroblewski.pl/docs/features/filtering) and [paginated](https://data-table-bundle.swroblewski.pl/docs/features/pagination). Users can [personalize](https://data-table-bundle.swroblewski.pl/docs/features/personalization) the order and visibility of columns. Those features can be [persisted](https://data-table-bundle.swroblewski.pl/docs/features/persistence) between requests, per user, so closing the browser and coming back later will restore the previous state.

Works with Doctrine ORM and arrays out-of-the-box, but can be easily [integrated with any data source](https://data-table-bundle.swroblewski.pl/docs/features/extensibility.html#proxy-queries). Supports [theming](https://data-table-bundle.swroblewski.pl/docs/features/theming) with Twig and [exporting](https://data-table-bundle.swroblewski.pl/docs/features/exporting) to various data formats.

Warning

This bundle is still in development and is likely to **change**, or even **change drastically**. It is **NOT** production ready, and backwards compatibility is **NOT** guaranteed until the first stable release.

Familiarity
-----------

[](#familiarity)

If you've ever worked with forms in Symfony, you should feel right at home:

```
class ProductDataTableType extends AbstractDataTableType
{
    public function buildDataTable(DataTableBuilderInterface $builder, array $options): void
    {
        $builder
            ->addColumn('id', NumberColumnType::class)
            ->addColumn('name', TextColumnType::class)
        ;
    }

    public function configureOptions(OptionsResolver $resolver): void
    {
        $resolver->setDefault('translation_domain', 'product');
    }
}
```

Creating the data tables using those type classes may also seem very familiar:

```
class ProductController extends AbstractController
{
    use DataTableFactoryAwareTrait;

    public function index(Request $request, ProductRepository $repository): Response
    {
        $queryBuilder = $repository->createDataTableQueryBuilder();

        $dataTable = $this->createDataTable(ProductDataTableType::class, $queryBuilder);
        $dataTable->handleRequest($request);

        if ($dataTable->isExporting()) {
            return $this->file($dataTable->export());
        }

        return $this->render('product/index.html.twig', [
            'products' => $dataTable->createView(),
        ])
    }
}
```

Rendering the data table in Twig is as simple as executing a single function:

```
{# templates/product/index.html.twig #}

    {{ data_table(products, { title: 'Products' }) }}

```

License
-------

[](#license)

The MIT License (MIT). Please see [license file](LICENSE) for more information.

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance60

Regular maintenance activity

Popularity48

Moderate usage in the ecosystem

Community25

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 94.1% 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 ~7 days

Recently: every ~21 days

Total

129

Last Release

230d ago

PHP version history (2 changes)v0.1.0PHP ^8.2

v0.3.1PHP ^8.1

### Community

Maintainers

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

---

Top Contributors

[![Kreyu](https://avatars.githubusercontent.com/u/24738141?v=4)](https://github.com/Kreyu "Kreyu (526 commits)")[![alexandre-castelain](https://avatars.githubusercontent.com/u/19281292?v=4)](https://github.com/alexandre-castelain "alexandre-castelain (9 commits)")[![easis](https://avatars.githubusercontent.com/u/50383201?v=4)](https://github.com/easis "easis (5 commits)")[![bdecarne](https://avatars.githubusercontent.com/u/1277131?v=4)](https://github.com/bdecarne "bdecarne (3 commits)")[![dbu](https://avatars.githubusercontent.com/u/76576?v=4)](https://github.com/dbu "dbu (3 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![mwansinck](https://avatars.githubusercontent.com/u/11411864?v=4)](https://github.com/mwansinck "mwansinck (2 commits)")[![maciazek](https://avatars.githubusercontent.com/u/169843222?v=4)](https://github.com/maciazek "maciazek (2 commits)")[![Shotman](https://avatars.githubusercontent.com/u/6579166?v=4)](https://github.com/Shotman "Shotman (1 commits)")[![creiner](https://avatars.githubusercontent.com/u/137896?v=4)](https://github.com/creiner "creiner (1 commits)")[![davidnectarestudio](https://avatars.githubusercontent.com/u/191591147?v=4)](https://github.com/davidnectarestudio "davidnectarestudio (1 commits)")[![FluffyDiscord](https://avatars.githubusercontent.com/u/10332247?v=4)](https://github.com/FluffyDiscord "FluffyDiscord (1 commits)")[![maxmishyn](https://avatars.githubusercontent.com/u/10288994?v=4)](https://github.com/maxmishyn "maxmishyn (1 commits)")[![RafaelKr](https://avatars.githubusercontent.com/u/14234815?v=4)](https://github.com/RafaelKr "RafaelKr (1 commits)")

---

Tags

bundledatatablessymfonysymfony-ux

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/kreyu-data-table-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/kreyu-data-table-bundle/health.svg)](https://phpackages.com/packages/kreyu-data-table-bundle)
```

###  Alternatives

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[kimai/kimai

Kimai - Time Tracking

4.6k7.4k1](/packages/kimai-kimai)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3689.4k10](/packages/netgen-layouts-core)

PHPackages © 2026

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