title

Migrer son Legacy vers Symfony ? SensioLabs vous explique tout !

  • user
    Juliette
  •  09.11.2021
  •  8 MIN

SensioLabs est une entreprise française bien connue des développeurs web, car elle est à l’origine d’un des frameworks PHP en open source les plus utilisés en France comme à l’international  : Symfony !

Afin d’aider les développeurs et les CTO dans leur migration vers Symfony, SensioLabs a mis à disposition un guide de migration complet à ce sujet. De l’environnement PHP, aux avantages de Symfony en passant par le code legacy, tout est expliqué pour migrer sans encombre.

 

SensioLabs : qui sont-ils ?

En 1998, Gregory Pascal et Fabien Potencier ont créé l’agence digitale Sensio. Face aux redondances au niveau des fonctionnalités de gestion d’utilisateurs, gestion ORM, etc. auxquelles ils font face, ils décident de développer un framework pour répondre à leurs propres besoins dans un premier temps.

 

Voyant que d’autres développeurs étaient confrontés aux mêmes problématiques, le code a ensuite été mis à leur disposition en open-source. C’est en 2005 que le projet prend son nom : Symfony, en suivant la volonté du créateur de conserver les initiales de Sensio Framework, S et F.

 

En 2013, SensioLabs lève 5 millions d’euros pour porter le succès de Symfony dans le monde entier et la success story continue avec la création de nombreux outils (Blackfire, SymfonyInisght, SymfonyCloud), le lancement d’une offre d’expertise et de formation (SensioLabs University). En 2019 SensioLabs se rapproche du Groupe Smile, partageant une vision, des valeurs et une ambition notamment autour de l’open-source. Les deux sociétés avaient déjà contribué ensemble à la création de l’Open Source School et à l’organisation du Paris Open Source Summit.

 

Aujourd’hui, SensioLabs est une société en pleine croissance tournée vers l’international et qui est fière d'avoir su conserver son esprit startup. Spécialisée dans l’utilisation de PHP et Symfony, l’entreprise poursuit son double objectif de simplifier la vie des développeurs, tout en repoussant les limites de l’innovation. L’entreprise compte aujourd’hui plus d’une centaine de collaborateurs passionnés et un réseau de plus de 50 partenaires présents dans 20 pays différents.

 

“Nous (SensioLabs) nous sommes éditeurs open-source et nous intervenons surtout au niveau de l’expertise, des services et de la formation autour de Symfony. Notre objectif est que l’utilisation de ce framework soit la plus efficace possible et que la communauté s’agrandisse.” Ludovic Duval, Directeur général de SensioLabs

 

Qu’est-ce que le framework Symfony ?

“Symfony est un Framework PHP open-source qui accélère la création et la maintenance des applications web en éliminant les étapes répétitives du code. Il est utilisé pour créer des applications robustes pour les professionnels et les particuliers en donnant aux développeurs le contrôle total sur les configurations. Avec des milliards de téléchargements quotidiens, il est l’un des frameworks les plus utilisés au monde.” Le guide migration par SensioLabs.  

 

Ce framework a été conçu comme une grande collection de composants PHP réutilisables. Chacun de ces composants permet aux développeurs de réaliser une tâche spécifique.

Au-delà d’être un outil très utile, Symfony c’est également une philosophie et une communauté de plus de 3000 contributeurs et 600 000 développeurs originaires de plus de 120 pays différents.

 

Qu’est-ce que PHP ? 

Commençons par le début, PHP est un langage de programmation libre, utilisé principalement pour créer des pages Web dynamiques via un serveur HTTP.  C’est un langage impératif orienté objet.

 

PHP a permis de créer de nombreux sites web célèbres, comme Facebook et Wikipédia. Il est considéré comme l’une des bases de la création de sites web dynamiques* mais également de celles des applications web.

 

Un peu d’histoire :

Le langage PHP a été inventé par Rasmus Lerdorf en 1994 pour son usage personnel (pour la mise en ligne de son CV). PHP étant à l’origine l’abréviation de Personal HomePage. Aujourd’hui PHP est connu comme l’abréviation d’Hypertext Preprocessor.

 

PHP est également l’un des langages de programmation les plus flexibles et les plus rentables sur le marché. Grâce à son panel de fonctionnalités, sa gamme de modules complémentaires, sa grande communauté et sa nature open-source, il est devenu un outil essentiel pour les développeurs de tout niveau.        

 

*Un site web dynamique est un ensemble de pages web générées à la demande, par opposition à une page web statique. Le contenu d'une page web dynamique peut donc varier en fonction d'informations qui ne sont connues qu'au moment de sa consultation. 

 

Quels sont les frameworks PHP ? 

Pour commencer, un framework est une plate-forme qui permet de créer des applications ou des sites web. Ils fournissent à leurs utilisateurs des bibliothèques de code pour les fonctions les plus courantes, ce qui réduit la quantité de code original à écrire pour les développeurs.

 

Pour le langage PHP les frameworks les plus en vogue en 2021 sont :

  • Laravel
  • Symfony
  • CodeIgniter
  • Zend Framework / Laminas Project
  • Yii (Framework)
  • CakePHP
  • Slim
  • Phalcon
  • FuelPHP
  • Fat-Free Framework

 

Cette liste étant évidemment non exhaustive puisqu’il est très difficile de lister tous les frameworks existants pour ce langage de programmation. Par exemple, Wikipédia en liste plus d’une quarantaine, mais certains d’entre eux sont plus des systèmes de gestion de contenu que de réels frameworks.

 

Les 10 signes selon SensioLabs que votre code est obsolète

Si vous faites face aux problèmes suivants, il est peut-être temps d’explorer de nouvelles possibilités en termes de framework PHP :

 

  1. Rien ne s’améliore. Développer de nouvelles fonctionnalités ou réparer des bugs n’est plus rentable.
  2. Aucune innovation n’est possible. Au lieu de réparer les bugs actuels, innover et planifier de nouvelles fonctionnalités, vos développeurs passent leur temps à maintenir à flot le code existant.
  3. Votre produit ou votre service est délaissé. Augmenter la portée de votre offre devient difficile, voire impossible à cause de votre outil actuel.
  4. Aucune aide n’est accessible. Votre configuration actuelle est trop ancienne pour pouvoir obtenir de l’aide de la communauté PHP.
  5. Aucun guide n’existe. Il n’existe aucune documentation pour implémenter, utiliser ou réparer votre code ou votre framework actuel, en interne comme en externe.
  6. Les plugins ne fonctionnent pas/plus. La plupart de vos nouveaux plugins ne fonctionnent pas ou posent des problèmes ou bien ne s’installent pas du tout sur votre version de PHP.
  7. La productivité en pâtit. Travailler en permanence sur de la résolution de bugs affecte nécessairement la productivité de vos équipes de développeurs en rendant une tâche simple, inutilement laborieuse.
  8. Aucun soutien n’est envisageable. La version de votre logiciel n’est même plus utilisée par les développeurs d’origine. Ce qui veut dire que lorsque vous rencontrez un problème avec lui, vous êtes seul face au problème.
  9. Trop de lenteurs… Vos performances sont ralenties ou non responsives, ce qui entraine une grosse frustration et une mauvaise expérience de votre solution à la fois pour vos développeurs et vos utilisateurs.
  10. Perte de  confiance dans le système. Vous ne pouvez pas vous permettre de toujours dépendre de votre système et d’avoir toujours peur qu’il plante ou qu’il freeze.

 

"Le principal défi, c'est l'accumulation de la dette technique. A terme, le projet n’est plus maintenable, plus scalable et plus pérenne. En effet, le web évolue et des problèmes d’obsolescence apparaissent liés à la version du code : failles de sécurité, performance, qualité. Une dette technique trop importante engendre des coûts élevés de développement (création de latences, de régressions, de bugs), bien plus importants que pour une version à jour. " Ludovic Duval, Directeur général de SensioLabs

 

Les avantages de la migration vers Symfony

Le framework Symfony offre de nombreux avantages à ses utilisateurs tels que :

 

  • L’open-source, vous pouvez donc le redistribuer et de le modifier autant que vous le souhaitez.
  • Sa communauté importante et très active. Ses utilisateurs interagissent quotidiennement sur Github ou sur d’autres plateformes.

 

“Le plus grand avantage de Symfony c’est sa communauté. C’est un framework où il y a énormément de contributeurs actifs. La communauté mondiale étant estimée à plus de 600 000 développeurs et plus de 5 000 personnes qui contribuent activement au framework.” Ludovic Duval, Directeur général de SensioLabs.

 

  • La favorisation des bonnes pratiques. Comme le framework est toujours à jour, les développeurs qui utilisent Symfony peuvent rester à la pointe des derniers design patterns orientés objets  tels que les architectures orientées services, les injections de dépendances, les abstractions d'interfaces, etc.
  • Sa facilité à débugger. Avec sa barre d’outils intégrés “La barre d'outils de débogage Web”, Symfony aide les développeurs à débugger des applications pendant son développement. Cette barre d’outils peut également être améliorée grâce à un panel de fonctionnalités supplémentaires.
  • Sa rapidité et sa flexibilité. Les composants Symfony sont rapides et faciles à installer et possèdent un répertoire de structure qui est facilement abstraites et décuplées. Ce qui rend l’implémentation plus simple pour de nombreux projets qui nécessitent une grande flexibilité.
  • Sa modularité. La structure modulaire de Symfony permet à ses utilisateurs de créer des applications pas à pas. Ce qui signifie qu’ils peuvent les interchanger à leur guise.
  • Sa lisibilité. Symfony offre à ses utilisateurs une large gamme d’applications clef en main. Ce qui leur permet de pouvoir fournir une solution très stable tout en gagnant du temps.
  • Son excellente documentation. Chaque mise à jour de Symfony sort avec une documentation solide et détaillée pour régler tous les problèmes autour de l’implémentation, l’usage ou bien le fonctionnement du framework.
  • Son attractivité au niveau du recrutement. Les développeurs Symfony sont très demandés sur le marché de la Tech. Cette grande communauté attire également des programmeurs de haut niveau qui cherchent à pousser leurs compétences au niveau supérieur.

 

D’ailleurs, dans l'écosystème tech, la quasi-totalité des besoins qui nous sont adressés par les acteurs de la Tech quand il s'agit de recruter en PHP sont avec les deux frameworks suivants : Symfony (français) et Laravel (US).

Les autres frameworks du marché, s'ils demeurent présents et notamment dans des sociétés qui ont peut-être moins renouvelé leur tech, sont quasi anecdotiques en termes de demandes (Zend, CakePHP, Phalcon).  Ils sont souvent des freins aux recrutements, car ils intéressent beaucoup moins les développeurs PHP. Chez Urban Linker, nous avons remarqué que dans la French Tech : la majorité des demandes demeurent axées sur Symfony.

 

“Pour donner un ordre d’idée, sur les recrutements réalisés par mes équipes depuis environ 2 ans, nous avons placés environ 15% de développeurs sur le framework Laravel pour 85% de Symfony.” Florent Muller, Manager Associé et Recruteur Tech Senior chez Urban Linker

 

  • Testé par la communauté. Chaque package Symfony est testé par un grand nombre de développeurs immédiatement après sa sortie, ce qui permet de découvrir et d'éliminer plus rapidement les bugs potentiels.
  • Une communication active. Le framework étant très actif, ses utilisateurs sont informés très vite des tendances actuelles et des versions à venir.
  • Des clients finaux satisfaits. En fin de compte, il s’agit de servir le client avec des expériences significatives qui contribuent à améliorer son travail et sa vie. Grâce à la sécurité, la fiabilité et la vitesse, Symfony garantit que vos clients finaux soient satisfaits de vos services et produits numériques.

L'enjeu de la migration vers Symfony 5, c'est d'avoir une version à jour pour éviter les problèmes de performance, de sécurité et de qualité. Migrer vers Symfony 5 permet aussi d'utiliser les derniers bundles de Symfony plus récents pour éviter de réinventer la roue. La principale complexité, c'est d'identifier le meilleur chemin pour migrer. C'est une étape très stratégique, car c'est ce qui va définir toute la suite de la migration. Il y aura deux possibilités : soit une migration progressive, avec de la TMA sur le legacy et le développement des nouvelles fonctionnalités en PHP 8 / Symfony 5, soit une migration "one-shot", tout d'un coup. Ludovic Duval, Directeur général de SensioLabs

 

Comment migrer vers Symfony ?

Nous arrivons enfin à LA question que vous vous posez : Comment migrer en toute sécurité une ancienne application PHP ou une application PHP Framework non maintenue vers Symfony ?

 

Pour commencer nous vous recommandons de télécharger le guide de migration publié par SensioLabs. (Lien disponible à la fin de l’article).

 

“On s’est rendus compte qu’il y avait encore beaucoup d’entreprises qui avaient lancé des projets de développement au moment où la notion de framework n’était pas encore mise en avant et adoptée par les développeurs. Donc certaines entreprises avaient soit déjà des frameworks qui ne sont plus à jour aujourd’hui et dont la communauté n’existe plus ou qui présentent des risques de sécurité. Soit, elles ont créé leurs propres frameworks, mais qui sont plus difficiles à maintenir et qui sont plus chronophages. C’est pour cela que nous avons décidé d’écrire tout un guide pour les aider à migrer.” Ludovic Duval, Directeur général de SensioLabs.

 

A savoir : Pour ce type de projet, il faut des développeurs confirmés ayant déjà travaillé sur des migrations.

La migration progressive est la plus complexe techniquement avec de la double écriture en base de données. La migration one shot est plus simple et permet plus de libertés puisqu'on part d'une feuille blanche. Elle peut néanmoins être plus risquée parce que tous les problèmes remontent en même temps, les sources d'erreur sont dures à investiguer et que l'on risque de reproduire l'existant sans faire mieux.

Migrer n'est pas une décision à prendre à la légère et on recommande de s'entourer d'une équipe expérimentée pour éviter les écueils.

 

Ensuite, vous ne le saviez peut-être pas, mais SensioLabs a mis en place des services de migration pour vous aider à migrer tout en douceur tels que :

  1. Des workshops de migration

Si vous avez une application existante construite avec une autre technologie et que vous voulez apprendre comment passer à Symfony, cet atelier de migration offre un excellent point de départ. Il vous aide en premier lieu à faire la différence entre une migration progressive et une migration ponctuelle, dite "big bang". L'atelier propose aussi une analyse et un audit de votre application, et permet d'identifier et de prioriser les principaux composants à migrer. En conséquence, vous apprendrez à concevoir un environnement de coexistence pour deux applications, à définir votre roadmap de migration, à évaluer les coûts et à prévenir les risques.

 

2. La migration progressive

Après avoir fait le choix d'une migration progressive vers Symfony, ce service de migration vous offre un soutien étape par étape pour exécuter votre projet de migration plus rapidement et en suivant les meilleurs standards de qualité. Sont inclus la formation, le support technique, l'audit et l'analyse, la revue de code, les recommandations, la mise en place d'un référentiel et d'outils de gestion, les suivis réguliers de l'équipe et les rapports. Dans l'ensemble, cela donnera à vos développeurs tout ce dont ils ont besoin pour améliorer leurs compétences grâce aux meilleures pratiques de développement afin de faire de votre migration un succès total.

 

3. Des solutions d'expertise

Comme chaque application et chaque projet est différent, SensioLabs propose une sélection de solutions professionnelles et de services sur mesure clef en main qui se concentrent sur les phases de démarrage, de conception, de construction et d'exécution.

 

Pour plus d’informations sur Symfony et SensioLabs, rendez-vous sur leur site internet !

Télécharger le Guide de Migration

Ce site utilise des cookies et vous donne le contrôle sur ce que vous souhaitez activer.