Utiliser Symfony dans un module PrestaShop

Utiliser Symfony dans un module PrestaShop : bonne ou mauvaise idée ?

Architecture modulaire : Symfony au service des modules PrestaShop

Depuis la version 1.7, PrestaShop intègre progressivement Symfony dans son cœur.

Mais lorsqu’on développe un module personnalisé, faut-il vraiment s’appuyer sur Symfony ? Ou rester dans l’écosystème natif de PrestaShop ?

Chez WEB-FUSION AGENCY, on s’est posé la question très tôt. Et voici ce qu’on a constaté.

Ce que Symfony apporte dans un module :

  1. Une architecture claire et modulaire (grâce aux services, aux entités Doctrine, etc.)
  2. Un code testable, maintenable et évolutif.
  3. La possibilité d’utiliser les outils modernes : injection de dépendances, annotations, DTO, etc.
  4. Une séparation nette entre logique métier et intégration PrestaShop.
  5. Une meilleure gestion des formulaires et de la validation avec Symfony Forms.

Mais ce n’est pas sans limites :

  • PrestaShop est encore hybride : beaucoup de logique passe par des classes « legacy ».
  • Certains hooks ou composants FO/BO n’ont pas encore d’interface Symfony.
  • L’installation de modules 100% Symfony peut être complexe sans précautions (autoloader, services, etc.).
  • La compatibilité multiversion demande une vraie rigueur.
  • Des vendors qui évoluent au fil des versions

Notre approche hybride (et pragmatique) :

Chez WEB-FUSION AGENCY :

  • On code les contrôleurs back-office en Symfony avec AdminController hérité de FrameworkBundle.
  • On injecte les services dans nos contrôleurs via le service container PrestaShop.
  • On isole les dépendances aux objets natifs (Context, Tools, Db) dans des services « ponts ».
  • On structure nos modules comme des mini-apps Symfony pour qu’ils soient prêts pour PrestaShop 9 (et au-delà).

Exemples de modules conçus comme ça :

  • WFA FEATURE FAMILY (gestion des familles de caractéristiques)
  • WFA JACKPOT (jeux concours avancés dans le BO)

Notre prochain module sera entièrement développé en Symfony côté back-end, avec un front-end en ReactJS et TailwindCSS pour une interface moderne et réactive.

Oui, Symfony est une bonne idée dans un module PrestaShop… si on le maîtrise.

C’est un pari sur l’avenir, mais aussi un gain immédiat en qualité, maintenance et scalabilité.

Tu développes aussi des modules PrestaShop ? Tu restes 100% natif ou tu as tenté l’aventure Symfony ?

On échange avec plaisir

#PrestaShop #Symfony #DéveloppementWeb #ArchitectureLogicielle #Ecommerce #WebFusionAgency #ModulesPrestaShop #PHP

Comments are closed.