Partage

'Icône Linkedin 'Icône Twitter 'Icône Facebook

Sylius, la solution e-commerce du framework Symfony


Sylius E-commerce basée sur Symfony

Sylius, la solution e-commerce du framework Symfony

Introduction

Sylius permet la création de sites Web E-commerce en utilisant le framework PHP Symfony. Si vous ne connaissez pas Symfony Voici un article détaillé

Rappel Symfony

Symfony est un framework PHP qui permet d’organiser votre code et d’intégrer facilement différentes fonctionnalités par le biais de bundles (paquets de fonctions existantes) tout en contraignant le code à différentes règles et conventions.
Cette méthode réduit considérablement le temps nécessaire à la programmation d’un site Web tout en gardant un code conventionnel et facilement maintenable.

Quelle est la relation entre Sylius et Symfony ?

Sylius est une extension full stack (impliquée à toutes les couches de développements d’un site) de Symfony destinée à la création de site e-commerce.

Il hérite donc des avantages et bonnes pratiques PHP de ce dernier tel que :
Gain de productivité.
• Bonne organisation du code et donc bonne maintenabilité.
• Simplicité d’extension grâce aux nombreux bundles.

Il y a 3 manières d’implémenter Sylius :

• Sylius “de base” :
En optant pour cette installation vous aurez accès à toutes les fonctionnalités nécessaires pour la création d’un site de e-commerce. Vous pourrez également l’adapter en fonction de vos besoins particuliers.Cela permet d’avoir un site fonctionnel dès son intégration qu’il ne reste plus qu’à customiser.

• Sylius en bundle :
Si vous le souhaitez, il est possible d’utiliser votre propre projet Symfony e-commerce et d’y intégrer par la suite les bundles de Sylius pour récupérer les différentes fonctionnalités de ce dernier telles que la gestion des paiements, un système de tunnel de commande.... Très pratique lorsque l’on possède déjà un projet fonctionnel.

• Sylius composants :
Si vous ne souhaitez pas utiliser Symfony, il est toujours possible de récupérer les différents composants Sylius sur un projet existant en Laravel ou autre framework PHP et de les intégrer pour obtenir leurs fonctionnalités.

Contrairement aux plateformes e-commerce tel que Magento ou Prestashop qui imposent une structure parfois trop lourde pour certains projets dû à leur qualité de CMS, Sylius, quant à lui, ressemble plus à un agrégat de bundles Symfony.
Cela vous permet de garder la main sur le projet tout en laissant la possibilité de pouvoir presque tout modifier à votre image.

Architecture

Globalement, l’architecture de Sylius est la même que celle d’un projet Symfony.

Au niveau du back-end :

  • BDD : au choix (Mysql/PostgreSQL/…)
  • ORM : Doctrine
  • Templating:Twig
Au niveau du front-end, Semantic se voit être le framework CSS utilisé par défaut avec la possibilité de mettre en place Bootstrap qui lui est plus connu.
Sylius est donc découpé en plusieurs parties :
  • Des composants autonomes qui sont utilisables dans n’importe quelle application PHP.
  • Des bundles permettant leurs intégrations simplifiées dans n’importe quel projet Symfony.
  • Le cœur de Sylius, qui gère ces différents composants.

Scalabilité et Customisation

Une des forces de Sylius réside dans sa facilité de customisation dûe à sa base de framework. Puisque Sylius est basé sur Symfony, il peut donc sans aucun soucis écraser et étendre les fonctionnalités existantes ce qui le rend presque 100 % modulable.

Il y a également la possibilité d’ajouter divers plugins venant de Sylius mais qui ne sont pas dans la version « basique » de Sylius. Ces plugins sont basés sur les bundles de Symfony et sont fournis par Sylius.

Cela vous permet d’installer des fonctionnalités présentes dans la liste de plugins de Sylius sans avoir à re-développer la totalité de celles-ci. La liste de ces plugins peut être trouvée sur leur site https://sylius.com/plugins/

Si par ailleurs vous souhaitez réaliser votre front-end en Javascript avec React, Angular ou tout autre framework/langage, Sylius possède une API REST vous permettant de séparer votre front-end de votre back-end. Vous n’êtes donc pas obligé d'utiliser le Twig de Symfony.

Cette API permet par la même occasion d’intégrer d’autres fonctionnalités tel qu’un CRM, ERP, logiciel de Mailing et bien d’autres et laisse donc toujours plus de possibilités pour votre projet.

Maintenance

Sylius est très bien couvert au niveau des tests, il utilise 4 outils principaux :

  • Phpspec : Il utilise le principe du SDD (Specification Driven Development) qui consiste à écrire les différentes spécificités d’un code avant même que celui-ci ne soit développé et ainsi permet aux développeurs de ne pas oublier les parties importantes inhérentes à la fonctionnalité du code.
    Il y a environ 410 classes testées de cette manière.
  • PHPUnit : Il consiste à créer des tests unitaires pour le code assurant son bon fonctionnement.
    Il y a environ 430 tests avec plus de 1400 assertions.
  • Behat : Il consiste à créer différents scénarios (remplissage d’un formulaire, clic sur un bouton…) et ensuite tester ceux-ci en générant la simulation d’une page de navigateur.
    Toutes les fonctionnalités de Sylius sont testées de cette manière soit environ 1400 scénarios pour 15000 étapes.
  • Travis CI : Il gère les 3 outils précédent en plus de certains outils supplémentaires (security-checker, phpstan, linters...)

    Ce qui est encore plus appréciable est la présence d’une documentation complète ainsi que d’une road-map qui est mise à jour avec des évolutions régulièrement publiées.

Avantages

  • Basé sur le framework Symfony et donc facilement étendable.
  • Grande communauté.
  • Bonne couverture de tests.
    • Documentation complète.
  • API REST consommable immédiatement.
  • Moins contraignant que ses concurrents principaux.

Inconvénients

  • Plutôt récent.
  • Nécessite la connaissance de Symfony.

Conclusion

Après l’expérience vécue due au Covid-19, de nombreuses sociétés ont développé le besoin d‘avoir un site e-commerce efficace et fonctionnel le plus rapidement possible.
Sylius permet de créer ce site en un minimum de temps et est donc un outil de choix recommandé par l’équipe Efficience IT pour tous développeurs Symfony ou PHP.

Poursuivez votre lecture sur ce(s) sujet(s) :