Symfony : communiquer avec son Legacy


Apéro PHP 10/12/2024

https://www.linkedin.com/in/blanc-frederic/

Fred Blanc

github.com/blanc-frederic

AFUP Toulouse

Lead dev chez SAFTI

Les personnages

  • Legacy : le sage et sénile
    il est pénible, coûte cher et rechigne à évoluer
  • Symfony : l'apprenti prometteur
    sympa et rapide, mais il ne sait pas encore tout faire

Remplacer Legacy par Symfony

  • Sans bloquer évolutions
  • Prise de risques limitée
  • Sans y passer trop de temps

Cohabitation nécessaire ⇒ communication

Partie 1

Aménager la colloc

Remplacement avec isolation

utile si Legacy pas en php ou vieille version

Deux app : Symfony et Legacy

Quand Symfony ne sait pas ⇒ renvoi vers url Legacy

⚠ pas de partage de code

Remplacement avec couplage

Une app : Quand Symfony ne sait pas ⇒ appel legacy

  1. Legacy peut utiliser Symfony
  2. Symfony ne doit pas utiliser Legacy

⚠ partage de la version de php

Appel Legacy quand Symfony ne sait pas

Deux solutions :

  • Dans Front controller
  • Via controller dédié

Appel Legacy dans Front controller

⚠ sécuriser chdir et require !

Appel Legacy dans controller dédié

⚠ sécuriser chdir et require !

Partie 2

Communications au quotidien

Appel Symfony depuis Legacy

Methodes statiques

Appel avec injection dépendances

Exemple : url generator

Preload nécessaire

Config preload

Merci !