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.
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
“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.
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.
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 :
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.
Si vous faites face aux problèmes suivants, il est peut-être temps d’explorer de nouvelles possibilités en termes de framework PHP :
"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
Le framework Symfony offre de nombreux avantages à ses utilisateurs tels que :
“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.
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
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
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 :
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 !