Je recrute

Je cherche un job

Le framework Symfony

Symfony est un framework PHP français. Libre et open source, il se distingue par un système de modules permettant de coder des applications web complexes plus rapidement. Particulièrement complet, il a su convaincre des entreprises de renom et s'impose régulièrement face à la compétition pour le développement de projets web de grande envergure.

Histoire de Symfony

Le développement de Symfony a débuté 2005, au sein de la société SensioLabs. Spécialisée dans le développement web, elle s'est vite rendu compte que les fonctionnalités dont avaient besoin ses clients étaient souvent les mêmes et que ses développeurs passaient beaucoup de temps à développer et redévelopper les mêmes éléments en les adaptant aux différents projets. De ce constat est née l'idée de Symfony.

L'utilisation de Symfony s'est donc faite en interne jusqu'à ce que l'entreprise décide d'en faire profiter le reste de la communauté PHP et ouvre son code en 2007. Symfony est depuis distribuée sous licence MIT et est donc un framework open-source, libre et non copyleft. Cela implique que le code produit peut être réutilisé, et même commercialisé. Un atout pour les entreprises l'utilisant.

Comme de nombreux frameworks PHP, Symfony utilise le motif d'architecture logicielle MVC (pour Modèle-vue-contrôleur). Il permet de travailler les modèles, les vues et les contrôleurs séparément pour une meilleure maintenabilité et évolutivité du code.

Un framework puissant

Symfony se distingue en embarquant, nativement, un ensemble de fonctionnalités très complet. Il travaille de concert avec grand nombre de technologies issues du monde open source, ce qui facilite le travail du développeur. C'est notamment le cas de Doctrine, un ORM (pour Object Relational Mapping) également utilisé par d'autres frameworks PHP. L'utilisation de ces outils se fait de la même manière à travers Symfony que leur utilisation directe (sans framework). Cela simplifie par conséquent l'utilisation de Symfony, pour peu que le développeur maîtrise déjà l'utilisation des bibliothèques avec lesquelles il travaille.

Particulièrement complet, Symfony a la réputation d'être un framework lourd. Sa rapidité d'exécution reste cependant bonne, notamment grâce à un système de cache améliorant le temps de chargement des pages web qu'il génère. Comme Symfony se rapproche grandement de Ruby on Rails, il repose également sur la philosophie DRY, pour don't repeat yourself, une philosophie évitant la redondance au sein du code. Il nécessite enfin un temps de prise en main conséquent, avec une courbe d'apprentissage importante. Il convient donc d'avantage à de gros projets. Pour les projets nécessitant une architecture logicielle plus légère et plus facile à prendre en main, Symfony propose un mini-framework complémentaire du nom de Silex.

Une autre force de Symfony repose sur son architecture sous forme de bundles, des modules se rapprochant des plug-ins utilisés par les logiciels. C'est là la véritable singularité du framework, la raison qui a motivé son développement initial. Les bundles regroupent des fonctionnalités récurrentes qu'il est possible de distribuer et donc de réutiliser dans d'autres projets. Ils permettent de gagner énormément de temps sur les développements.

Symfony dans le monde de l'entreprise

Symfony est l'un des frameworks PHP les plus utilisés et reconnus dans le monde de l'entreprise. Plateformes multimédia, sites communautaires, sites de rencontre, vente de services, il a fait ses preuves dans de nombreux domaines. La preuve en consultant son impressionnant portfolio qui regroupe notamment le CMS Drupal, Dailymotion, Spotify et Yahoo answers. Symfony ne suffit pas en lui-même, à développer l'ensemble des fonctionnalités propres à de tels projets qui requièrent d'autres langages de programmation que PHP. C'est d'ailleurs le cas de l'ensemble des frameworks. Symfony a cependant l'avantage de parfaitement s'intégrer à d'autres technologies, en l'associant par exemple à un serveur d'encodage en Python pour une plateforme vidéo.

Sa popularité le rend fort d'une large communauté et d'un important support qui suffisent parfois à faire pencher la décision en sa faveur. La richesse de ses bibliothèques et sa rapidité (pour un framework de sa taille) suffisent généralement à convaincre les entreprises, d'autant qu'il correspond à la plupart des besoins des applications web modernes.

Pour les entreprises, les avantages sont nombreux puisqu'il permet l'évolution d'un petit projet en un gros, s'utilise avec différents SGBD (MySQL, PostgrSQL, NoSQL) et permet des développements complexes et rapides grâce à l'utilisation des bundles. Symfony dispose en plus d'un module d'internationalisation qui facilite les traductions et constitue un atout de plus pour les entreprises présentes sur plusieurs marchés. Dernier argument de poids, il est plébiscité par de nombreux développeurs. Quelle que soit l'évolution de ses besoins, il est donc plus que probable pour une entreprise d'arriver à engager un bon développeur Symfony.

5 autres articles en lien avec cette page :