Sylius party 2025 – Toulouse
Le 19 juin, nous avons participé à la Sylius Party organisée à Toulouse par Emagma. Une journée dense, riche en retours d’expérience, annonces techniques et rencontres autour de l’écosystème Sylius. L’événement s’adressait autant aux développeurs confirmés qu’aux curieux souhaitant approfondir leurs connaissances Sylius, ses plugins, ses performances ou encore ses usages détournés hors e-commerce.
Antoine Bluchet — Sylius 2.0 & API Platform
Antoine nous livre un retour d’expérience d’intégration d’API Platform dans Sylius, avec un regard extérieur mais éclairé : il est mainteneur d’API Platform et release manager, bien qu’il ne soit pas un spécialiste de Sylius.
Points clés abordés :
- Intégration de JSON-LD dans l’API Sylius : bien que non activée par défaut, l’activation est triviale grâce à API Platform. Toutefois, les résultats ne sont pas conformes à 100% au standard Schema.org — Antoine montre comment corriger facilement ces écarts.
- Utilisation des Resource Mutators, une nouveauté d’API Platform 3.4, pour ajuster dynamiquement les ressources.
- Performance avec FrankenPHP : un serveur web embarquant PHP, qui, en mode worker, réduit considérablement le temps d’exécution en réutilisant un environnement PHP pré-initialisé.
- Découverte du composant
JsonStreamer
de Symfony 7.3 : ce composant permet une sérialisation JSON plus performante, utile notamment pour les réponses volumineuses. Encore en phase d’intégration dans API Platform et Sylius.
Joachim Lovgaard — Creating Sylius Plugins
Joachim partage de précieuses bonnes pratiques pour créer des plugins Sylius robustes et maintenables.
Recommandations principales :
- Respecter semver.
- Réduire la complexité d’installation.
- Fournir des valeurs par défaut cohérentes.
- Créer ses propres entités plutôt que de surcharger celles de Sylius.
- Utiliser des DTO/VO pour limiter les ruptures de compatibilité.
- Préférer les providers aux repositories pour éviter les conflits.
- Faciliter le hook via DataMappers.
- Intégrer des tests fonctionnels et d’intégration.
- Faire de la mutation testing.
- Utiliser phpstan au niveau le plus strict et enrichir les PHPDoc.
- Intégrer une CI (GitHub Actions ou autre).
- Utiliser le squelette officiel de plugin Sylius.
- Et surtout : adopter les outils d’IA comme JetBrains AI Assistant (Junie), et développer en open source pour attirer des contributeurs.
Piotr Szymanski — The Sylius 2.0 Plugin Upgrade Journey
MPiotr nous présente les coulisses de la migration d’un plugin vers Sylius 2.0.
Il commence par nous faire une rétrospective sur l’évolution de Sylius, avec sa version 1 dans les années 2023 jusqu’à la sortie officielle de la version 2.0 fin 2024. Il en profite également pour présenter la nouvelle équipe derrière Sylius : une équipe plus conséquente, structurée autour de pôles différents (front-end, back-end, QA, UX design, etc.). Le projet Sylius a bien grandi. Bien entendu, il fait aussi un focus sur les key contributors — coucou à Loïc, Estelle, Valentin et Florian.
Nouveautés apportées par Sylius 2.0 :
- Passage à API Platform v4.
- Introduction des Twig Hooks.
- Remplacement de Winzou par Symfony Workflow.
- Migration de Semantic UI à Bootstrap.
- Suppression de jQuery.
- Refactoring massif des templates Twig.
Étapes de migration :
- Mise à jour des dépendances.
- Migration de la base de données et des templates.
- Refonte JS/CSS avec Webpack Encore.
- Réécriture de tests (abandon de PhpSpec au profit de PHPUnit et Behat).
- Intégration de la nouvelle API de paiement (basée sur Payment Request, plus sur Payum).
- Utilisation de TestApplication, une mini-app Sylius pour tester les plugins plus efficacement.
Bonus : nouveautés Sylius 2.1 annoncées
- Symfony 7.3, PHP 8.4, Node.js 24.
- Refonte visuelle de l’admin.
- Accessibilité (WCAG).
- Migration des tests vers Unit testing natif Symfony.
Retrouvez notre article sur le sujet Migration vers Sylius 2.1 : un enjeu technique et stratégique majeur
Retrouvez notre article Migration vers Sylius 2.1 : un enjeu technique et stratégique majeur
Grégoire Pineau — Asynchrone avec Messenger et Mercure
Grégoire vulgarise l’asynchronisme avec Symfony Messenger et montre comment Mercure permet de notifier un utilisateur en temps réel.
Cas d’usage : upload de CSV
- En synchrone, le serveur est bloqué pendant le traitement.
- En asynchrone, un message est placé dans une queue, traité par un worker.
- Messenger facilite cette mise en œuvre (commande
make:message
, configuration des transports,messenger:consume
…).
Retours d’expérience :
- Ne jamais envoyer un fichier dans un message. Utiliser un pointeur (path).
- Pour le feedback utilisateur : Mercure, basé sur SSE (Server-Sent Events), plus simple et sécurisé que WebSockets.
- Publication d’événements côté back, réception native dans le navigateur.
- Pour la UI : il recommande Symfony UX/Turbo pour actualiser dynamiquement les composants.
Estelle Gaits — Pole Position on the Grid
Estelle propose une superbe métaphore entre Sylius Stack et la F1, pour illustrer la puissance du couple Resource Bundle + Grid Bundle.
Objectif : créer un admin rapidement
- Resource Bundle gère les modèles, routes, opérations.
- Grid Bundle offre les vues (tableaux, filtres, formulaires).
- En combinant les deux avec quelques attributs PHP (
AsGrid
,AsFilter
, etc.), on génère une interface admin complète quasi automatiquement.
Nouveautés à venir :
- Intégration des Live Components dans les Grids pour une UX dynamique (filtrage, pagination, sans rechargement complet).
- Mention spéciale à Loïc Frémont qui œuvre activement à cette intégration.
Sylius party 2025 – Le mot de la fin
Une fois de plus, Emagma a organisé un événement de grande qualité, réunissant des acteurs clés de l’écosystème Sylius, qu’ils soient utilisateurs, contributeurs ou curieux de la stack. La journée a parfaitement mêlé conférences techniques pointues, retours d’expérience concrets et découvertes de nouveautés à venir dans Sylius 2.x.
Et comme toujours, l’apéro a été un moment convivial, propice aux échanges informels entre développeurs, agences, core team et contributeurs. L’occasion idéale de poser ses questions, partager des idées, ou simplement trinquer autour d’un bon verre entre passionnés du framework.
On a hâte de remettre ça pour la prochaine édition !