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.
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.
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
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éfinissez les colonnes, leur rendu, leur tri et leur recherche dans une classe dédiée, sans reconstruire toute la configuration en JavaScript.
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.
Texte, montants, dates, choix ou actions : chaque type porte ses options de rendu et le comportement attendu côté serveur.
Alimentez un tableau depuis API Platform et actualisez les lignes en temps réel avec Mercure, sans maintenir un second flux de données.
Ajoutez des filtres adaptés aux données et des actions de ligne asynchrones pour construire des backoffices plus fluides.
Profitez de l’écosystème DataTables.net, notamment Buttons, Select et ColumnControl, avec une intégration pensée pour Symfony.
Exemple
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.
#[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
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 →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
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.
Ressources
Commencez par le guide rapide, puis explorez les intégrations et les retours en vidéo.
Questions fréquentes
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.
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.
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.
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.
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 ?
Installez le bundle avec Composer et suivez le guide rapide pour afficher une première table interactive.
composer require pentiminax/ux-datatables