Lecture 4 minutes
La liste des nouveautés et correctifs de la version Sylius 1.5 est longue, mais voici quelques-unes des plus importantes :
- Extraction de nouveaux composants du cœur de Sylius : cela s'inscrit dans une démarche de plus long-terme du framework sur laquelle nous reviendrons dans la suite de cet article
- Index des commandes dans l’API, ce qui permet de lister les commandes via celle-ci. La documentation était faite, mais le code pas encore à jour, c'est désormais chose faite !
- Module personnalisable de réutilisation ou non des coupons après l'annulation d'un commande (ils le seront désormais par défaut)
- Liste des livraisons dans le menu d'administration, ce qui permet de visualiser le statut des livraison de manière globale
- Possibilité de définir les paramètres régionaux utilisés par Sylius lors de l'installation : vous pouvez dès à présent installer Sylius en français ! C’était ma première contribution d’ajout de fonctionnalité à Sylius, et j’ai beaucoup appris en la faisant ! Je vous invite, vous aussi à y contribuer.
Extraction des composants et des bundles
Le framework Sylius est composé de différentes briques, appelés "composants" et "bundles", qui couvrent l'ensemble des besoins.
Tous étaient regroupés dans le cœur de Sylius à l'origine, mais ils sont maintenant extraits peu à peu pour les rendre indépendants, et ce pour les raisons suivantes :
Un cycle de publication plus court
Le cycle de publication étant identique à celui du framework, les mises à jour des composants et bundles étaient bien plus lentes que l'équipe Sylius ne le souhaitait. Ainsi, l'extraction des composants et bundles permet de publier plus régulièrement une version mineure avec de nouvelles fonctionnalités.
Une intégration continue plus rapide
L'intégration continue faite via le logiciel Travis CI teste l'ensemble de l'application, construit la documentation, puis teste tous les packages, ce qui demande un certain temps et peut décourager les contributeurs. Même si l'extraction de certains composants ne permettront pas de réduire le temps de build à seulement quelques minutes, celui-ci sera déjà largement inférieur au temps actuel qui est proche des 1h30. En effet, bien que les tests E2E faits avec Behat soient efficaces, ils sont également très lents !
Des tests plus faciles
Extraire les différents composants permet également de les tester avec une configuration particulière. Si un composant nécessite une configuration spécifique (par exemple, MongoDB pour le ResourceBundle), il est plus facile d’importer et de configurer des librairies externes. Il est également plus facile de garder, voire d'améliorer la qualité de code avec des outils d’analyse statique ou de faire plus de tests E2E avec Behat.
Une compréhension et une réutilisation plus facile
Il est plus facile de comprendre le fonctionnement de plusieurs petits composants indépendants et d’un framework qui les regroupe plutôt que celui d'un gros framework où tout est “fusionné”. Cela les rend plus facile à intégrer de manière indépendante à d’autres projets (pas forcément e-commerce) et à y contribuer.
A partir de ce constat, 3 composants supplémentaires ont été extraits dans la version 1.5 de Sylius, et nous avons donc désormais les composants suivants :
- FixturesBundle
- ThemeBundle
- Registry
- Mailer / MailerBundle (nouveau)
- Grid / GridBundle (nouveau)
- Resource / ResourceBundle (nouveau)
Test de montée de version
La montée de version sur un Sylius de base s’est bien passée. Néanmoins, sur les projets déjà existants, il faut que les Plugin soient compatibles avec cette nouvelle version.
Sur nos projets nous utilisons par exemple, BitBagCommerce/SyliusCmsPlugin qui n'est pas encore compatible (une PR est en cours pour la montée de version), mais la communauté étant assez réactive les montées de version sont très rapides. Si ce n'est pas le cas, ça peut être une bonne occasion de se lancer sur une première PR dans le monde merveilleux de l'open source !