Bundle Symfony open source

UX DataTables : intégrer DataTables dans Symfony

UX DataTables relie DataTables.net à Symfony. Déclarez vos colonnes, filtres et actions dans une classe PHP ; le bundle se charge du contrôleur Stimulus, des routes Ajax et du rendu Twig.

  • 10 000+téléchargements sur Packagist
  • MITlicence open source
  • PHPconfiguration déclarative

UX DataTables est un bundle Symfony pour construire des tableaux de données interactifs. Il prend en charge le tri, la recherche, la pagination, les filtres et les actions, avec un traitement côté navigateur ou côté serveur via Doctrine. Il s’intègre également à API Platform et Mercure pour les applications Symfony modernes.

Fonctionnalités

Un DataTable pensé pour l’écosystème Symfony

L’objectif n’est pas de masquer DataTables.net, mais d’offrir une couche Symfony cohérente pour déclarer les tableaux, interroger les données et faire évoluer un backoffice.

Déclaration en PHP

Définissez les colonnes, leur rendu, leur tri et leur recherche dans une classe dédiée, sans reconstruire toute la configuration en JavaScript.

Traitement côté serveur

Déléguez la pagination, la recherche et le tri à Doctrine pour conserver une interface rapide, même lorsque le volume de données augmente.

Colonnes typées

Texte, montants, dates, choix ou actions : chaque type porte ses options de rendu et le comportement attendu côté serveur.

API Platform et Mercure

Alimentez un tableau depuis API Platform et actualisez les lignes en temps réel avec Mercure, sans maintenir un second flux de données.

Filtres et actions Ajax

Ajoutez des filtres adaptés aux données et des actions de ligne asynchrones pour construire des backoffices plus fluides.

Extensions DataTables.net

Profitez de l’écosystème DataTables.net, notamment Buttons, Select et ColumnControl, avec une intégration pensée pour Symfony.

Exemple

Déclarer un tableau directement en PHP

Une classe de tableau décrit les colonnes et leurs types. Cette même déclaration pilote le rendu côté client et la requête Doctrine lorsque le traitement côté serveur est activé.

Le template n’a plus à reconstruire la définition du tableau : il se concentre sur son emplacement dans la page, tandis que la configuration reste testable et réutilisable.

OrderTable.php
#[AsDataTable(entityClass: Order::class)]
class OrderTable extends AbstractDataTable
{
    public function configureColumns(): iterable
    {
        yield TextColumn::new('reference');
        yield TextColumn::new('customer.name', 'Client');
        yield MoneyColumn::new('total')
            ->currency('EUR');
        yield ChoiceColumn::new('status')
            ->setChoices(Status::class);
    }
}

Architecture

Choisir le bon mode de traitement

Côté client

Pour les jeux de données déjà disponibles

Les lignes sont envoyées avec la page. DataTables.net assure ensuite le tri, la recherche et la pagination dans le navigateur. Ce mode convient aux volumes limités que l’application peut charger en une fois.

Guide du traitement côté client →
Côté serveur

Pour les tableaux Doctrine volumineux

Les requêtes Ajax transmettent la page, le tri, la recherche et les filtres au serveur. Doctrine ne récupère que les lignes nécessaires, ce qui évite de transférer tout le jeu de données au navigateur.

Guide du traitement côté serveur →

Cas d’usage

Quand utiliser UX DataTables ?

UX DataTables est particulièrement adapté aux backoffices Symfony, aux interfaces d’administration, aux catalogues internes et aux tableaux de suivi. Il devient intéressant dès qu’une simple table HTML ne suffit plus et que les utilisateurs doivent rechercher, filtrer, trier ou agir sur des lignes.

Une intégration DataTables.net manuelle reste possible, mais elle impose souvent de maintenir séparément la configuration JavaScript, les endpoints Ajax, la transformation des colonnes et la logique de requête. UX DataTables rassemble ces responsabilités autour d’objets PHP typés, tout en conservant l’accès aux fonctionnalités de DataTables.net.

BackofficesRecherche, filtres et actions sur les entités métier.
API PlatformAffichage des ressources et découverte des colonnes.
Temps réelRafraîchissement des tableaux ouverts grâce à Mercure.
ReportingTri et exploration de volumes importants via Doctrine.

Questions fréquentes

FAQ sur UX DataTables

Qu’est-ce que UX DataTables ?

UX DataTables est un bundle Symfony open source qui intègre DataTables.net. Il permet de déclarer des tableaux interactifs en PHP avec des colonnes typées, des filtres, des actions et un traitement des données côté client ou côté serveur.

UX DataTables fonctionne-t-il avec Doctrine ?

Oui. Le mode serveur transmet la pagination, le tri et la recherche à Doctrine. Il convient aux tableaux contenant trop de lignes pour être chargées et traitées intégralement dans le navigateur.

Peut-on utiliser UX DataTables avec API Platform et Mercure ?

Oui. Le bundle propose une intégration avec API Platform pour découvrir et afficher les données, ainsi qu’une intégration Mercure pour actualiser les tableaux ouverts en temps réel.

Comment installer UX DataTables dans Symfony ?

Installez le paquet avec la commande composer require pentiminax/ux-datatables, puis suivez le guide d’installation pour configurer les assets, les routes Ajax et votre première classe de tableau.

UX DataTables est-il gratuit ?

Oui. UX DataTables est un projet open source distribué sous licence MIT. Le code source, les versions publiées et la documentation sont accessibles publiquement.

Prêt à essayer ?

Construisez votre premier tableau Symfony

Installez le bundle avec Composer et suivez le guide rapide pour afficher une première table interactive.

composer require pentiminax/ux-datatables