Les signes que votre interface a vieilli
- Chaque clic recharge toute la page, et les utilisateurs perdent leur position ou leur saisie.
- Le JavaScript est un empilement de plugins jQuery que plus personne n'ose toucher.
- Les mêmes boutons, alertes et tableaux sont recopiés d'écran en écran, chacun un peu différent.
- Un front React ou Vue séparé double chaque fonctionnalité : une API à écrire, deux bases de code à faire évoluer.
- Les utilisateurs rafraîchissent la page pour savoir si une demande a avancé.
Symfony UX : la réactivité sans tout réécrire
Navigation fluide avec Turbo
Turbo transforme la navigation en échanges de fragments HTML : plus de rechargement complet, des formulaires qui affichent leurs erreurs sur place, des parties de page chargées à la demande. Les contrôleurs et les templates Twig restent les mêmes.
Comportements ciblés avec Stimulus
Le JavaScript qui reste nécessaire est rangé dans des contrôleurs Stimulus, petits, testables et attachés au HTML qu'ils pilotent. Ils remplacent les écouteurs jQuery dispersés dans les templates.
Composants dynamiques avec les Live Components
Pour une recherche qui filtre en direct ou un formulaire qui s'adapte à chaque saisie, les Live Components se mettent à jour depuis le serveur, en PHP, sans écrire d'API.
Temps réel avec Mercure
Les notifications, l'avancement d'une demande ou l'arrivée d'un message sont poussés aux navigateurs ouverts par Mercure et appliqués en Turbo Streams : plus besoin de rafraîchir la page.
Un système de composants partagé
Nous regroupons les éléments d'interface dans des composants Twig réutilisables : alertes, cartes, modales, menus, tableaux. Chaque écran assemble les mêmes briques, ce qui uniformise l'application et accélère les évolutions suivantes. Sur les applications Airbus, ce socle est partagé entre plusieurs applications, qui suivent ainsi la même charte.
Une modernisation par étapes
- État des lieux : versions de Symfony et de PHP, dépendances JavaScript, écrans les plus utilisés et les plus fragiles.
- Socle : montée de version si nécessaire, activation de Turbo sur toute l'application, outillage JavaScript à jour.
- Composants communs : mise en place du système de composants et migration des éléments recopiés.
- Écrans prioritaires : réécriture des écrans critiques en Stimulus et Live Components, suppression du jQuery associé.
- Temps réel : notifications et mises à jour en direct là où les utilisateurs en ont besoin.
Et pour une application à reprendre
Si l'application n'a plus de prestataire ou tourne sur une version de Symfony qui n'est plus maintenue, la modernisation commence par une reprise de l'application : audit, montée de version, puis évolutions de l'interface.