La puissance de Sylius réside dans sa flexibilité, mais cette liberté est un double tranchant. Une surcharge (override) mal maîtrisée peut transformer une simple mise à jour de sécurité en un cauchemar technique de plusieurs jours. En tant que Lead Dev, votre mission est de personnaliser tout en restant "Update-proof".
1. Privilégier la Décoration à la Surcharge
Plutôt que de remplacer une classe entière (ce qui fige le code dans une version donnée), utilisez la décoration de services. Cela permet d'ajouter un comportement avant ou après une méthode native sans modifier le code original.
- Avantage : Si Sylius met à jour la logique interne du service, votre décoration continue de fonctionner sans conflit.
- Mécanique : Utilisez le mot-clé
decoratesdans vos fichiers YAML de services Symfony.
2. Utiliser les Événements (Sylius Events)
Sylius utilise abondamment la machine d'état (Winzou State Machine) et les événements Symfony. Avant de toucher à un contrôleur :
- Vérifiez s'il existe un point d'entrée dans la State Machine pour déclencher votre logique (ex: lors du passage de commande).
- Utilisez des Event Listeners pour modifier les données juste avant la persistance en base de données.
3. Templates : L'usage des "Theme Bundles"
Pour le front-end, évitez de copier-coller des fichiers entiers du bundle original. Utilisez les Template Events de Sylius qui permettent d'injecter du code HTML à des endroits précis sans écraser le fichier source.
4. Sensibiliser le client : Le coût de la dette
Chaque "caprice" fonctionnel qui s'éloigne du standard a un prix caché :
- Maintenance : Plus on s'éloigne du standard, plus le coût des montées de version augmente.
- Risque : Les correctifs de sécurité critiques peuvent être plus complexes à appliquer sur un code fortement surchargé.
- Conseil : Guidez le client vers des solutions qui exploitent les fonctionnalités natives avant de proposer un développement spécifique.
5. Automatiser le contrôle
Mettez en place des outils comme Composer Bin ou des scripts d'analyse pour repérer les fichiers écrasés manuellement dans le dossier templates/bundles/. Un audit régulier permet de nettoyer les surcharges devenues obsolètes après une mise à jour.
En résumé, une boutique Sylius pérenne est une boutique qui respecte le noyau. Utilisez la décoration, documentez vos choix et rappelez régulièrement à vos partenaires que la simplicité est la clé de la longévité.
Aucun commentaire