Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Migrer d'une architecture custom à Symfony : la refonte de PrestaShop

Migrer d'une architecture custom à Symfony : la refonte de PrestaShop

Julien Martin

October 27, 2016
Tweet

More Decks by Julien Martin

Other Decks in Programming

Transcript

  1. Forum PHP 2016 Qu’est-ce que PrestaShop ? • Solution e-commerce

    open source • Projet lancé en 2007 • Utilisé par plus de 250 000 boutiques en ligne • Disponible dans plus de 60 langues • Plus de 600 fonctionnalités par défaut • Plus de 3 500 modules et 2 000 thèmes disponibles sur la marketplace Addons
  2. Forum PHP 2016 Qu’est-ce que PrestaShop ? • 40 000

    lignes de code pour les templates • 30 000 lignes de code JavaScript • 230 000 lignes de code PHP
  3. Forum PHP 2016 Qu’est-ce que PrestaShop ? • 8 années

    d’existence • 7 versions majeures (la 1.7 arrive bientôt !) • Plusieurs dizaines de développeurs (selon les années).
  4. Forum PHP 2016 La version 1.6 • Sortie en mars

    2014. • Surtout une refonte graphique de la 1.5 : FO & BO responsive, refonte de l’interface, tableau de KPI. • Côté Core : continuité de la 1.5 — soit une codebase initiée en 2012, dans la douleur.
  5. Forum PHP 2016 La version 1.6.1.0 • Équipe largement renouvelée.

    • Volonté de se moderniser : SemVer, PSR-2, Composer, Webpack, etc. • Côté architecture : modularité, testabilité, robustesse.
  6. Forum PHP 2016 La version 1.6.1.0 • Introduction d’un composant

    IoC (Inversion Of Control). • Introduction d’une classe générique de récupération d’entité. • Mise en place d’Adapters.
  7. Forum PHP 2016 Le constat post-1.6.1.0 • Des fondations toujours

    vieillissantes. • Une dette technique toujours présente.
  8. Forum PHP 2016 Pourquoi migrons nous vers Symfony ? Pourquoi

    utiliser un framework ? HTTP Sécurité Routes Validation i18n Database Cache Log Events … Couche métier Votre super projet
  9. Forum PHP 2016 Pourquoi migrons nous vers Symfony ? •

    Ce n’est pas notre rôle ! • Cela évite les coûts de maintenance • Nous pouvons nous concentrer sur notre métier Pourquoi utiliser un framework ?
  10. Forum PHP 2016 Pourquoi migrons nous vers Symfony ? Pourquoi

    Symfony ? • Architecture simple et efficace • Respecte à la lettre les principes SOLID • Mises à jour fréquentes et respectant le SemVer • La communauté
  11. Forum PHP 2016 Pourquoi migrons nous vers Symfony ? •

    Re-créer les 600 fonctionnalités prendrait trop de temps • Pour ne pas perdre la compatibilité des modules • Nous ne pouvons pas stopper notre activité pendant des années ! Pourquoi pas PrestaShop v2 ?
  12. Forum PHP 2016 La migration ! Voués à être supprimés

    Adapters Legacy sources Symfony AppBundle
  13. Forum PHP 2016 Le design pattern Adapter Qu’est ce qu’un

    Adapter ? The adapter pattern allows the interface of an existing class to be used as another interface.
  14. Forum PHP 2016 Le design pattern Adapter Product ________________ +getPrice()

    Symfony AppBundle Price ________________ +getProductPrice() Legacy sources Product ________________ +getBasePrice() ProductAdapter ________________ +getPrice() Adapters
  15. Forum PHP 2016 Surcharger un service avec un adapter Legacy

    sources Adapters Symfony AppBundle Extends Register services
  16. Forum PHP 2016 Il y a encore beaucoup de choses

    à faire ! • Migrer de votre propre moteur de template à Twig • Les tests ! • Double écriture en base ! • Pourquoi pas une API ? • Se fixer des processus limitant la dette technique