Symfony2 et jQuery Datatable

Nous avons tous eu, un jour, le besoin d’afficher un tableau de données dans nos pages Web. Quand c’est un tableau de données figées et peu nombreuses, nous le réalisons à la main. Quand elles sont dynamiques, mais toujours peu nombreuses, nos outils de templating, comme Twig, sont amplement suffisants.
Par contre, quand les données sont dynamiques, très nombreuses, qu’il faut gérer une pagination et si en plus ce tableau doit proposer la manipulation de ces données, là ça commence à être vraiment complexe.

Datatable est un plugin pour jQuery qui permet de réaliser simplement des tableaux de données (aussi appelé datagrid) dynamiques et paginables, avec chargement des données asynchrones, qui trie par colonne, filtre des données affichées et/ou filtre côté serveur. Il propose de nombreuses fonctionnalités ce qui le rend vraiment indispensable.

Datatable c’est cool (mangez-en ! ça fait pas grossir) mais ça serait quand même bien si un Bundle Symfony2 l’intégrait, histoire de travailler directement avec des Entity géré par Doctrine2 et de ne pas avoir à gérer les filtres de recherche ou les tris. Un Bundle simple qui mâche le travail.

Oui, cela existe en fait déjà depuis un petit moment. Il en existe même plusieurs. Pendant un temps nous avons utilisé AliHichem/AliDatatableBundle. Un très bon Bundle, mais peu maintenu par son auteur (vraiment dommage). Nous avons par le passé fait un fork de ce Bundle pour ajouter certaines fonctionnalités qui nous manquaient cruellement, comme le fait de pouvoir traiter des sous-requêtes.

Aujourd’hui, c’est un fork un peu plus sauvage auquel j’ai procédé et ce pour pouvoir appliquer les modifications nécessaires pour réellement améliorer ce Bundle. De cette manière je peux proposer ce Bundle sur packagist.org et bénéficier de la puissance de Composer !

Cette nouvelle version du DatatableBundle a déjà subit de lourdes modifications internes, sans pour autant casser la compatibilité avec sa version précédente. Donc si vous utilisez encore AliDatatableBundle, vous pouvez passer au WaldoDatatableBundle sans crainte.

Les principales fonctionnalités du Bundle sont :

  • Datatable est traité comme un service
  • Intégration au système de templaiting Twig
  • Gestion de la pagination
  • Gestion des tris
  • Recherche globale et par colonne
  • Personnalisation simple des champs de cellule, grâce à Twig
  • Support d’actions groupées
  • Support de Doctrine2 et de sous-requête DQL

Mais qu’y a t’il de vraiment nouveau au menu de cette nouvelle version tagée 2.0.0 (oui c’est une Révolution!)

  • Le code mort a été supprimé
  • Les bonnes pratiques spécifiées par Symfony2 ont été appliquées
  • l’exécution des tests unitaires et fonctionnels a complètement été refondue
  • Ajout d’un certain nombre de tests fonctionnels et unitaires afin d’avoir une bonne couverture de code.

Du fait que nous utilisons quotidiennement ce Bundle, nous devons nous assurer de sa pérennité.

D’ailleurs, la prochaine version majeure du WaldoDatatableBundle intégrera la nouvelle version du plugin jQuery Datatable. Elle ne devrait pas tarder à arriver (j’y travaille).

Tagués avec : , ,
Publié dans Doctrine, PHP, Symfony2
Un commentaire pour “Symfony2 et jQuery Datatable
  1. Matthieu dit :

    Un grand merci !
    Votre bundle est excellent et très simple à mettre en place.
    Bravo !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*