TECHNOLOGIES / SYMFONY

Expert Sonata Project : Back-Office Symfony depuis 2014

SonataAdminBundle est l'un des frameworks d'administration Symfony les plus utilisés en France. Chez SmartBooster, nous l'utilisons depuis sa première version et avons contribué directement à son écosystème open source.

Développement, maintenance, montée de version ou migration vers une solution plus moderne : nous connaissons Sonata de l'intérieur.

Sonata Project
4.x Version stable actuelle 4.42.0 - janvier 2026 · Symfony 5 à 8
3.x Version précédente Fin de vie — Symfony 3 / 4 / 5
5.x En préparation Pas de date annoncée · Symfony 7 / 8

SONATA ADMINBUNDLE

Le framework d'administration Symfony de référence

SonataAdminBundle est un framework open source qui génère automatiquement une interface d'administration complète pour vos entités Doctrine. Inspiré de Django Admin, il fonctionne sur le principe d'une classe Admin par entité : vous déclarez les champs à afficher, Sonata génère les vues liste, création, édition et affichage.

Là où d'autres solutions proposent du CRUD générique, Sonata offre une configuration fine : filtres avancés, droits par rôle ou par objet (ACL), actions groupées, export natif, entités imbriquées (child admin), blocs de tableau de bord configurables.

C'est aujourd'hui l'un des back-offices Symfony les plus répandus en France sur les projets métier — et l'un des plus complets pour les équipes qui maîtrisent son architecture.

CRUD automatique par entité Doctrine
Une classe Admin = toutes les vues configurées. Zéro template HTML à écrire pour les cas standards.
Sécurité par rôle ou par objet (ACL)
Deux niveaux de droits : actions (LIST, CREATE, EDIT…) et ACL granulaire par enregistrement.
Architecture modulaire en bundles
AdminBundle + DoctrineORMAdminBundle + bundles complémentaires (Media, User, Translation…) — on intègre ce dont on a besoin.
Interface SonataAdmin — vue liste avec filtres et actions

FONCTIONNALITÉS

Ce que Sonata AdminBundle sait faire

Sonata est l'un des frameworks d'administration Symfony les plus complets. Ces fonctionnalités servent de base à nos ateliers de conception pour cadrer les back-offices avec nos clients.

Interface CRUD par entité

Une classe Admin par entité Doctrine configure automatiquement toutes les vues : liste, création, édition, affichage. Zéro template HTML à écrire pour les cas courants.

Filtres et grilles de données

DatagridMapper permet de définir des filtres avancés sur n'importe quel champ. Tri, pagination et recherche texte fonctionnent nativement sur des bases de millions d'enregistrements.

Sécurité granulaire (ROLES + ACL)

Deux niveaux de sécurité : ROLES par action (LIST, CREATE, EDIT, DELETE, EXPORT) et ACL par objet (propriétaire, visibilité par utilisateur). Adapté aux back-offices multi-profils.

Actions groupées (batch)

Batch actions : appliquer une opération sur une sélection d'enregistrements en un clic. Publication en masse, archivage, réassignation sans développement front spécifique.

Export natif multi-format

Export CSV, Excel, JSON et XML intégré sur toute liste, sans développement spécifique. Basé sur SonataExporter →filtre et colonnes exportées configurables dans l'Admin class.

Entités imbriquées (Child Admin)

Child Admin permet d'administrer une entité dans le contexte de son parent (ex : lignes de commande dans une commande). Navigation hiérarchique et périmètre automatiquement limité.

Dashboard et blocs (SonataBlock)

Le tableau de bord est composé de blocs configurables (SonataBlockBundle). Statistiques, graphiques, notifications →chaque bloc est un service Symfony réutilisable.

Traductions multi-langue

SonataTranslationBundle (créé par SmartBooster en 2014) ajoute la gestion de contenu multi-langue directement dans l'interface Admin, via Doctrine Extensions.

Commandes console

Commandes Symfony intégrées : lister les admins, générer les ACL, déboguer la configuration. Le tout explorable via bin/console sonata:admin:*.

Résultats

Un aperçu en images

Parce qu'une capture d'écran vaut mieux qu'une longue description, voici un aperçu concret de ce qui a été réalisé.

Aperçu en plein écran

EXPERTISE

Contributeur Sonata depuis 2014

En 2014, alors que nous travaillions avec Symfony-CMF sur des projets de sites multilingues, nous avons créé le SonataTranslationBundle — un bundle permettant de gérer le contenu multi-langue directement dans l'interface SonataAdmin, via Doctrine Extensions.

Ce bundle a été intégré au projet officiel Sonata et est aujourd'hui référencé dans la documentation principale. Il est toujours actif et maintenu dans l'écosystème.

Cette contribution fondatrice nous a imposé de comprendre les entrailles de Sonata : architecture Admin, gestion des templates Twig, sécurité, événements internes. C'est cette connaissance profonde qui nous permet aujourd'hui de reprendre et faire évoluer n'importe quel projet Sonata, même les plus complexes.

Créateur du SonataTranslationBundle (2014)

Bundle intégré à l'organisation officielle sonata-project sur GitHub — premier commit en mars 2014 dans le contexte Symfony-CMF.

10+ ans de projets Sonata en production

Des projets Sonata 2.x encore en production aux migrations vers Sonata 4.x, nous couvrons l'intégralité du cycle de vie.

Profil Symfony Connect vérifié

Nicolas Bastien, fondateur de SmartBooster, dispose d'un profil Symfony Connect qui retrace les contributions open source depuis les débuts.

Symfony Connect

Membre de la communauté Symfony depuis septembre 2008.

Voir sur Symfony Connect
Miam
Survey 2017
SymfonyLive Paris 2012
SymfonyWorld 2022
Twig Documentation
Monolog Documentation
Composer Documentation
Swiftmailer Documentation
Silex Documentation
Symfony Documentation
Propel Contribution
Composer Contribution
Doctrine Contribution
Symfony CMF Contribution
Symfony Contribution
Symfony Training Level 2
Symfony Certified Developer
1 year Symfony
2 years Symfony
3 years Symfony
4 years Symfony
5 years Symfony
6 years Symfony
7 years Symfony
8 years Symfony
9 years Symfony
10 years Symfony
11 years Symfony
12 years Symfony
13 years Symfony
14 years Symfony
15 years Symfony
16 years Symfony
17 years Symfony

OPEN SOURCE

smartbooster/sonata-bundle : notre couche Sonata sur GitHub

Au fil des projets, nous avons factorisé nos extensions Sonata dans un bundle open source publié sur GitHub et Packagist. Ce bundle est déployé sur l'intégralité de nos projets Sonata et reflète nos standards de qualité.

Il couvre quatre problèmes récurrents que Sonata ne résout pas nativement : le style visuel, la gestion des emails, la sécurité de base et le paramétrage applicatif par environnement.

Thème CSS cohérent

Styles par défaut pour SonataAdmin : variables SCSS configurables, support Bootstrap-Sass et Tailwind →une interface propre sans partir de zéro.

Composant Mailer avec doc auto

Envoi d'emails transactionnels intégré avec documentation automatiquement générée de tous les templates →fini les emails non documentés perdus dans le code.

Gestion de la sécurité prête à l'emploi

Classe User clé en main avec login, mot de passe oublié, profil admin et mise à jour automatique de la dernière date de connexion →sécurité de base sans re-développer.

Paramétrage applicatif par environnement

Template de configuration, commande CD pour générer les paramètres manquants, entité en base et interface Admin dédiée →la gestion des paramètres applicatifs enfin structurée.

VOUS RECONNAISSEZ-VOUS ?

Les signaux que Sonata atteint ses limites

Sonata reste un outil puissant pour les équipes qui le maîtrisent. Mais sur des projets de plus de 5 ans, ces signaux apparaissent régulièrement.

Ralentissement des releases

Depuis 2022, le rythme des mises à jour de Sonata a significativement diminué. Les issues restent ouvertes plus longtemps, les PR de la communauté sont moins actives.

Dépendances qui se décrochent

Certains bundles tiers de l'écosystème Sonata ne suivent plus les versions récentes. Chaque montée de version Symfony devient un travail de coordination risqué.

UX datée difficile à personnaliser

L'interface SonataAdmin reste reconnaissable et peu flexible. Adapter l'expérience utilisateur aux standards 2024 demande un effort important.

VERSIONS

Historique des versions Sonata

Sonata Project suit le cycle de vie de Symfony. Voici les trois branches majeures, leur compatibilité et leur statut actuel. Voir les releases officielles →

  • Sonata 4.x

    Version actuelle

    Symfony 5 / 6 / 7

    Refonte majeure : PHP 8, Bootstrap 5, Stimulus, abandon de jQuery. Architecture modernisée mais communauté en net ralentissement depuis 2022. Branche maintenue, mais les contributions tierces se raréfient.

    • PHP 8+
      Utilisation des attributs PHP natifs pour la configuration des services.
    • Bootstrap 5 + Stimulus
      Interface rafraîchie, jQuery supprimé →mais personnalisation toujours complexe.
    • Sonata Doctrine ORM 4.x
      Requiert SonataDoctrineORMAdminBundle en complément pour la couche ORM.
  • Sonata 3.x

    Fin de vie

    Symfony 3 / 4 / 5

    Version de transition : Bootstrap 4, support Symfony 3 à 5. Nombreux projets en production encore sur cette branche. Migration vers 4.x complexe (breaking changes importants).

    • Bootstrap 4
      Refonte de l'interface graphique avec de nouvelles options de thème.
    • Dépendances jQuery
      jQuery toujours requis →dette technique notable par rapport aux standards modernes.
  • Sonata 2.x

    Obsolète

    Symfony 2 / 3

    Version originelle, très répandue sur les projets legacy Symfony 2/3. Nombreux projets encore en production avec cette version. Bootstrap 2/3, architecture CRUD mature.

    • Bootstrap 2/3
      Interface classique SonataAdmin, personnalisable mais vieillie visuellement.
    • Symfony-CMF
      Époque de l'intégration avec Symfony CMF : contexte d'origine du SonataTranslationBundle.

POUR LES NOUVEAUX PROJETS

Sonata ou une alternative ?

Sonata reste pertinent pour les équipes qui le maîtrisent déjà et ont des processus rodés pour être efficaces. Pour un projet démarré aujourd'hui, d'autres outils offrent une courbe d'apprentissage plus courte, une communauté plus active et une meilleure ergonomie out-of-the-box.

Catégorie Outil En deux mots Lien
Symfony

EasyAdmin Bundle

v4 · Symfony 6 / 7

L'alternative naturelle dans l'écosystème Symfony. Configuration PHP simple, interface Bootstrap 5 propre, intégration Symfony 6/7 native. Meilleur choix pour un nouveau projet avec des besoins CRUD standards, moins puissant sur les cas complexes (ACL objet, child admins imbriqués). En savoir +
Laravel

Laravel Nova

Payant · $199/projet

Panel d'administration premium pour Laravel. Interface soignée, écosystème Nova actif, ressources et métriques intégrées. Nécessite de passer sur Laravel, pertinent pour les nouveaux projets sans contrainte de stack. nova.laravel.com →
Laravel

FilamentPHP

Open source · Laravel Livewire

Framework d'administration PHP open source basé sur Laravel Livewire et Alpine.js. Composants riches (tables, formulaires, widgets), personnalisation poussée, communauté très active. Alternative sérieuse et gratuite à Nova. filamentphp.com →
No-code

Forest Admin

SaaS / self-hosted

Génère un back-office directement depuis votre base de données existante, sans développement front. Forest Admin introspecte votre schéma et produit une interface configurable. Adapté aux équipes sans développeurs front disponibles ou pour des besoins d'admin internes rapides. forestadmin.com →

ET APRÈS SONATA ?

Découvrez SmartPlatform, notre alternative moderne

Plutôt que de continuer à patcher Sonata, nous avons développé SmartPlatform : notre propre framework de back-office Symfony, conçu pour les projets métier exigeants.

Symfony natif, architecture moderne, interface fluide — et une migration depuis Sonata que nous maîtrisons de bout en bout, puisque nous connaissons les deux côtés.

Interface SmartPlatform — back-office Symfony

« La qualité est au rendez-vous et les délais maîtrisés. C'est un gage de sérénité que de travailler avec SmartBooster. »

Philippe Adolf
Philippe Adolf
Responsable marketing chez Saint-Gobain

« Tout au long de notre collaboration, Nicolas a toujours su être un professionnel exemplaire. En tant que project manager, il sait prendre tous les sujets à bras-le-corps et les prioriser avec intelligence.

Il sait aussi donner la visibilité suffisante et rassurante sur les avancées de ses équipes. Nicolas se révèle être un interlocuteur crédible et efficace autant sur le plan technique que sur le plan de la gestion projet. »

Benoît Mariaux
Benoît Mariaux
Responsable du développement chez Saint-Gobain

« Je recommande vivement Nicolas ! Il a cette grande qualité de structuration des projets qui permet d'avancer toujours de manière positive. En outre il est force de proposition et fait preuve d'une grande créativité.

Vous pouvez compter sur Nicolas ! »

Olivier Waldin
Olivier Waldin
Directeur Général chez Homly-You

POUR ALLER PLUS LOIN

Approfondir votre réflexion

Migration et montée de version Symfony

Méthodologie éprouvée pour migrer votre projet Symfony, de la 4.x à la 7.x — sans casser la production.

TMA — Maintenance logicielle évolutive

Un projet Sonata en production a besoin de correctifs, de montées de version et d'évolutions régulières. C'est le cœur de notre service TMA.

Reprise et refonte de logiciel existant

Reprendre un projet Sonata legacy, auditer la dette technique et construire un plan d'évolution réaliste.

SmartPlatform — notre back-office Symfony

La destination naturelle de migration depuis Sonata : un framework back-office moderne, maintenu et documenté par SmartBooster.

FAQ

Les réponses à vos questions

Et si vous ne trouvez pas ce que vous cherchez, nous serons ravis de vous répondre en direct lors d'un rendez-vous entre humains !

Oui, Sonata AdminBundle est toujours maintenu. La version 4.x reçoit des correctifs et reste compatible Symfony 5 à 7. Cela dit, le rythme des contributions tierces a significativement ralenti depuis 2022. Le cœur du bundle est stable, mais l'écosystème de bundles complémentaires (SonataMediaBundle, SonataUserBundle…) se met à jour moins régulièrement. Nos projets Sonata en production tournent sans problème, mais nous conseillons d'anticiper une migration pour les projets prévus sur 5 ans ou plus.

Oui, Sonata a une courbe d'apprentissage plus élevée que la moyenne des bundles Symfony. L'architecture repose sur des concepts propres (Admin class, DatagridMapper, FormMapper, ShowMapper, routes imbriquées) qui demandent plusieurs jours de prise en main pour un développeur Symfony expérimenté. La documentation est complète mais dense. C'est pour cette raison qu'il vaut mieux le réserver aux équipes qui ont déjà une base Sonata en place, ou qui s'engagent sur un projet de longue durée où l'investissement initial sera amorti.

Pour un nouveau projet démarré aujourd'hui, nous recommandons EasyAdmin Bundle plutôt que Sonata. EasyAdmin offre une configuration PHP moderne, une courbe d'apprentissage significativement plus courte, une intégration Symfony 6/7 native et un mainteneur membre de la Symfony Core Team. Sonata reste pertinent si votre équipe le maîtrise déjà et a des processus rodés ou si le projet requiert des fonctionnalités avancées comme les ACL par objet ou les child admins imbriqués, que Sonata gère mieux nativement.

Vous avez un projet ?

Contactez-nous pour savoir comment nous pouvons vous aider.