Le développement Web avec le framework Symfony

Technologie et développement

Lorsque l'on entend le mot "Symfony", nous avons tendance à penser à de grandes envolées de violons et à Mozart ou Beethoven…

Mais qu’est-ce qui peut bien se cacher derrière un si joli nom ? Un robot qui chante ? Une appli qui vous permettra de composer de jolis morceaux de musique ?

En fait, non. 

Symfony, c’est un framework.

Ah…

Mais ne quittez pas cette page tout de suite, laissez-nous vous en dire un peu plus…

 

Symfony, c’est quoi au juste ?

Symfony est un framework, autrement dit une sorte de « boîte à outils » contenant tous les éléments afin de créer un site Web. En effet, plutôt que de réinventer la roue à chaque fois que l’on désire développer un nouveau site, l’idée est de partir d’une « base » identique où seront déjà en place les éléments de base, ceux que l’on retrouve dans tous les sites.

Une fois mis en place, le framework va donc constituer le « squelette » du futur site, sur lequel on va placer tous les éléments au fur et à mesure du développement de celui-ci.

Symfony a été développé par une agence Web française, SensioLabs. D’abord baptisé Sensio Framework et conçu pour être utilisé uniquement pour les projets de l’agence, il fut ensuite partagé avec la communauté des développeurs et pris le nom de Symfony (afin de garder les initiales « SF » pour « Sensio Framework »). 

Symfony en est aujourd’hui à sa version 4. Il utilise le langage PHP dans sa dernière version, la 7.

Symfony est utilisé par un grand nombre d’applications Web, dont certaines sont très connues dans le milieu du développement comme Drupal, Joomla, phpBB ou PrestaShop.

 

Différences entre un CMS et un framework

De nombreux sites Web sont développés à l’aide d’un CMS (Content Management System). Un CMS est un outil permettant de gérer le contenu du site : il propose notamment une interface dédiée, le back office, dont va se servir le Webmaster pour alimenter le site.

Si le CMS est la solution la plus simple pour créer un site, il trouve ses limites lorsque l’on veut accéder à des fonctions ou à une personnalisation plus avancée. 

Le framework, lui, est hautement personnalisable et est ainsi capable de coller aux moindres désirs du client. En revanche, il demande un plus grand temps de développement, car, contrairement au CMS, « tout est à construire ». 

Néanmoins, Symfony propose de nombreux « bundles » (ou « bibliothèques ») afin de faciliter le développement des différentes fonctionnalités. C’est d’ailleurs là l’une des principales qualités de ce framework, comme nous allons le voir dans la suite de cet article.

Pourquoi utiliser Symfony dans un projet web

Une communauté importante
La communauté Symfony compte des centaines de milliers de développeurs qui programment sans cesse de nouvelles fonctionnalités pour le framework. Ces fonctionnalités sont en permanence testées afin d’éliminer le plus de bugs possible et ainsi offrir un niveau de fiabilité très élevé.

Cette communauté très active est vraiment l’un des points forts de Symfony. Même si au départ le développement du framework s’est fait en France, la communauté a su s’étendre dans le monde entier.

Symfony, un framework évolutif
Symfony évolue sans cesse : SensioLabs, loin de se reposer sur ses lauriers, s’attache à développer régulièrement de nouvelles versions toujours plus complètes et performantes. Symfony en est aujourd’hui à sa quatrième version.

Ces dernières années, l’accent a été mis sur la simplicité de mise en œuvre, la stabilité ainsi que sur le respect des bonnes pratiques du développement web.

Le respect des bonnes pratiques
Symfony incite les développeurs à respecter certaines règles lorsqu’ils programment de nouvelles fonctionnalités afin de garantir une bonne stabilité et évolutivité de celles-ci. Le code produit doit ainsi être facilement lisible et respecter les standards communément utilisés.

Une simplicité d’utilisation
Symfony 4 automatise de nombreuses tâches simples, faisant ainsi économiser du temps au développeur.

Des gains de productivité
Grâce à son organisation en éléments adaptables à n’importe quel besoin, Symfony accélère considérablement le développement d’un projet web. Bien évidemment, cela induit une réduction des coûts, puisque moins de temps sera passé à développer et à débugger les applications créées.

Un bon niveau de sécurité
Symfony attache une grande importance à la sécurité en intégrant des mesures préventives afin de lutter contre les attaques et réduire au maximum les failles. De nombreux mécanismes de sécurité sont également présents à chaque étape du développement.

Une grande flexibilité
Contrairement à un CMS, qui limite le champ d’action du développeur à ses propres fonctionnalités, un framework comme Symfony lui ouvre un champ de possiblités infinies, ce qui le rend adaptable à n’importe quel projet, même très complexe.

L’agence web est donc sûre de pouvoir respecter les moindre désirs de son client, voire de changer d’orientation au besoin.

Un système open-source
Le code source de Symfony est en libre accès : un programmeur peut développer de nouvelles fonctionnalités et en faire profiter toute la communauté, qui les testeront afin d’en garantir la fiabilité.

Un framework de référence
Symfony est utilisé dans le développement de sites très connus comme Daily Motion ou 20 Minutes. Des CMS comme Drupal dans sa version 8 utilisent également de nombreux éléments issus de Symfony. C’est là un gage de qualité certain : si des professionnels reconnus utilisent Symfony avec succès, pourquoi pas vous ?

Une programmation orientée objet
Symfony utilise le langage de programmation PHP dans sa version 7. C’est le langage de programmation par excellence des projets web et son efficacité n’est plus à démontrer.

 

Les inconvénients de Symfony (et des frameworks en général)

Il n’y aurait donc aucune ombre au tableau ? Symfony serait la solution à tous les problèmes de développement Web ? Comme vous le savez sûrement, chaque médaille a son revers…

Nous allons examiner les principaux inconvénients à l’utilisation d’un framework comme Symfony. Le but de cet article n’étant pas de vous noyer dans des détails trop techniques, nous allons nous en tenir à des principes généraux.

Les points suivants ne sont d’ailleurs pas spécifiques à Symfony mais à l’utilisation des frameworks en général et ils concernent surtout l'utilisation de Symfony par les développeurs mais n'impacte pas les projets.

Bien évaluer la taille du projet
Un framework comme Symfony est réellement utile si vous travaillez sur un projet complexe faisant appel à de nombreuses fonctionnalités. C’est d’ailleurs pour cela que les frameworks ont été inventés : pour ne pas reprogrammer sans cesse les mêmes choses.

Mais si votre projet est de petite taille et ne nécessite pas l’ajout d’un grand nombre de fonctionnalités, alors l’utilisation d’un framework va plus vous embarrasser qu’autre chose. Il va vous offrir des myriades de possibilités dont vous n’avez pas l’utilité et vous risquez de perdre du temps au lieu d’en gagner. Ce qui nous amène au point suivant…

Une complexité de mise en œuvre
Un framework peut s’avérer long et complexe à maîtriser. Réaliser une opération simple peut vous prendre plusieurs heures, quelque chose de plus complexe plusieurs mois. Il faut comprendre le fonctionnement interne du framework, lire la documentation, résoudre les bugs…

Là encore, il faut bien réfléchir en amont sur l’opportunité ou non d’utiliser un framework plutôt que de tout programmer en partant de rien. On risque en effet de se mordre les doigts en se rendant compte trop tard du temps et de l’argent perdus en voulant maîtriser une « usine à gaz » bien trop complexe par rapport au projet que l’on veut mener à bien…

Une perte de savoir
C’est logique : plus vous utilisez un framework, moins vous codez. Outre le fait que les développeurs vont avoir tendance à être de plus en plus fainéants, ils auront également plus de mal à résoudre les éventuels bugs qui ne manqueront pas de se mettre en travers de leur chemin. Pourquoi ? Tout simplement parce qu’ils utiliseront des « recettes » toutes faites sans réellement savoir comment celles-ci fonctionnent. 

Ce travers peut ceci dit être évité en faisant appel à des spécialistes de tel ou tel framework, qui connaîtront celui-ci sur le bout des doigts et en suivront pas à pas toute l’évolution…

Des problèmes de sécurité
L’utilisation d’un framework va avoir tendance à amener les développeurs à importer de nombreuses lignes de code, par facilité, sans que celles-ci soient réellement justifiées. 

Cela va avoir comme conséquences non seulement d’alourdir inutilement l’application, mais va de surcroît poser des problèmes de sécurité. En effet, tout ce code inutile peut être activé par un éventuel pirate, qui s’en servira pour attaquer le site.

 

Voilà, nous espérons que ce petit tour d’horizon du framework Symfony vous aura été utile et vous aura permis de vous faire une idée précise des avantages et inconvénients apportés par cette solution.

FIDESIO, vous accompagne dans la création de vote site Internet grâce à ses équipes spécialisées Symfony.

Notre agence Web est capable de répondre à tous vos besoins et d'élaborer une véritable stratégie digitale.

N'hésitez pas à nous contacter.