Retour au Blog

Pourquoi choisir Symfony pour vos projets ?

Pourquoi choisir Symfony pour vos projets ?

Introduction

Pour rappel : un framework PHP est constitué de plusieurs composants qui cohabitent et forment une base de développement solide. Symfony a été développé par des Français (Lillois même) et c’est à ce jour l’un des meilleurs du marché en France et en Europe.

Si vous n’êtes pas familier avec cette notion de Symfony, nous vous invitons à lire notre article : Symfony pour les moldus, pour bien comprendre avant d'aller plus en avant.

Symfony permet d'organiser un projet grâce à des normes et des conventions

Grâce à ce cadre que chaque développeur se doit de respecter, on obtient une organisation solide et propre des fichiers et du code.

Symfony developpement web php

Les avantages sont multiples :

  • Contrairement à un projet en PHP Natif, qui peut avoir une organisation maison ou custom, sans organisation standard, Symfony permet une intégration facile des développeurs, car il y est établi des standards.
  • Avec Symfony, les fichiers doivent respecter une syntaxe particulière, avec un rangement défini dans une arborescence fixe. Cela facilite la maintenance sur le long terme et les développeurs maîtrisant ce framework savent rapidement où trouver un fichier de code, pour apporter les modifications nécessaires.
  • L’architecture MVC (Modèle Vue Contrôleur) permet de découper le code par bloc de fonctionnalité, d’un côté la logique métier de l’application, d’un autre le visuel, et en dernier le modèle de données. Ainsi, des intégrateurs web n’auront aucun mal à intervenir sur la partie visuelle du projet, sans avoir à intervenir sur des fichiers PHP complexes.
  • Symfony favorise la réutilisation de code, la création de tests automatisés (tests unitaires et tests fonctionnels avec phpUnit ou Behat par exemple) et le respect des recommandations PHP-FIG (Des recommandations mondiales pour une meilleure interopérabilité entre les projets web PHP). Il permet donc de produire du code de qualité standard.

Garantie de sécurité et d'excellentes performances

Symfony est un framework PHP de qualité, car il comprend un socle de sécurité fort, nullement égalé. Ce qui fait de lui un féroce Framework à la sécurité éprouvée et d'excellentes performances.

La sécurité dans le framework Symfony

Symfony intègre des mesures de sécurité préventives pour lutter contre les failles et attaques XSS, CSRF et injection SQL. Contrairement à un développement PHP maison où il faut penser systématiquement à protéger chaque requêtes, formulaires ou données quelconque venant de l'utilisateur.

Comme le dit si bien le proverbe : Never Trust user input !!

Symfony embarque systématiquement ces mécanismes de sécurité, un pare-feu sans avoir à les implémenter à chaque fois.

Autre avantage de cet outil, par rapport à l’utilisation d’un CMS (comme WordPress, Drupal ou Joomla) est qu’il va être moins ciblé par les hackers qui concentrent leurs efforts sur les CMS répandus sur le web et dont l’architecture et les URLs sont prédictibles, et dont les failles sont connues.

Performances et cache sous Symfony

De base, le framework Symfony est rapide, d’autant plus combiné avec PHP 7 (voire 8) que nous utilisons au sein d’Efficience IT. Mais son plus gros avantage réside dans les possibilités d'amélioration des performances qu’il offre nativement :

  • L’optimisation du code pour les “accélérateurs” comme APC ou OPcache permettant d’éviter de recompiler le code PHP à chaque appel et donc pouvoir afficher plus rapidement les pages du site.
  • Les fonctions de cache HTTP natives permettant de mettre en place facilement une stratégie côté visiteur et côté serveur font de ce framework un acteur performant du Web.

Symfony fédère une grande communauté de développeurs

C’est un framework reconnu dans le monde et présent dans le TOP 3 mondial des frameworks PHP open sources, grâce sa communauté internationale :

  • Une fiabilité de son code, de ses composants: La communauté fait un réel travail de qualité et d’amélioration notamment à travers les pull-requests du projet Github.
  • La création et mise à disposition de Bundles (plugins) open source permettant de gagner du temps dans le développement. On retrouve plus des milliers de bundles open source actifs sur Symfony.
  • Une documentation complète et à jour permettant de monter facilement en compétences.
  • Des personnes qui peuvent vous dépanner en cas de problème sur votre projet Symfony via des plateformes comme Stackoverflow, Slack, forums de développeurs.
  • De nombreux articles présentant des astuces et retours d’expérience intéressants pour faire les bons choix d’architecture ou techniques.

Symfony : une technologie qui rendra vos équipes autonomes

Si vous faites développer votre projet par Efficience IT, il vous sera possible d’internaliser à terme votre projet. En utilisant ce framework, nous pouvons former vos collaborateurs sur l’application ou l’API afin de les rendre le plus autonome possible. Le nombre d’offres de Développeurs Web Symfony sur le marché est un bon indicateur sur la fiabilité de la technologie et son adoption massive, tant recherché par les développeurs pour sa facilité et ses performances que par les constructeurs de plateforme pour ces mêmes raisons.

Symfony est-il adapté à votre projet ?

En pratique, le framework peut répondre à tous types de projets web, API, outils métiers du moment qu'il s'agit d'un projet Web. Ceux qui souhaiteraient faire décoller une fusée avec Symfony, malheureusement cela risque d'être très compliqué.

Utiliser Symfony pour la création d’un site vitrine ? Oui et non ...

Tout dépend du type de site vitrine, si ce dernier apporte une dimension dynamique plus complexe qu’une gestion d’articles, de pages de contenus ou qu’un formulaire de contact, il peut y avoir un intérêt. Par exemple, si vous adossez un système d’espace client, une interconnexion avec un système informatique comme un ERP / CRM, un formulaire avancé, du paiement en ligne … Dans ces cas, il peut y avoir une plus-value à utiliser Symfony.

Dans le cas contraire, privilégiez l’utilisation d’un CMS comme Wordpress, Drupal (dont la version 8 repose sur les composants Symfony), ou encore Bolt, un CMS basé sur Symfony (qui vous permettra plus de souplesse pour vos évolutions futures).

Pour le développement d’un espace connecté de type Intranet ou Extranet ? Oui !

Symfony répond totalement au besoin pour la création d’intranet ou extranet. Le système de rôles et de gestion des utilisateurs embarqué permet de développer rapidement une plateforme de ce type avec personnalisation des droits d’accès et rôles de chacun. Les Voters également, sont des outils qui vous permettront de donner des droits spécifiques pour certaines données, très pratique et facile à mettre en place.

Dans le cadre de la réalisation d’un outil métier avec des workflows complexes ? Oui !

Pour réaliser des outils métiers, que ce soit des ERP ou CRM sur mesure, comme des outils sur mesure pour optimiser des tâches quotidiennes dans une entreprise, Symfony est parfaitement adapté.

On dit souvent qu’il s’agit d’un des frameworks PHP open source le plus adapté pour le monde professionnel, grâce à sa robustesse, sa stabilité et sa modularité (très important pour ce type de projet en constante évolution), ce qui en fait un framework de choix pour ce type de projet.

Pour créer une API ou des webservices ? Oui !

Symfony étant basé sur une architecture HTTP, son utilisation est idéale pour créer des webservices RESTFULL. Tout est natif dans le framework, de la conception des endpoints jusqu’à la sécurité des accès.

Et pour une plateforme avec de fortes contraintes de temps réel ? Oui et non ...

Si le projet demande des échanges en temps réel comme un système de chat live, une plateforme de jeux vidéos, de statistiques financières / bourse … Symfony n’est pas la solution la plus adaptée. Il est préférable de partir sur une solution de type Asynchrone en multithread qui pourra traiter plus facilement cette problématique.

Toutefois, Symfony peut être utilisé comme socle backend et couplé à une API, tout en utilisant pour la partie frontend des technologies plus adaptées comme React.js ou Vue.js.

L’avantage de confier son projet à une Dev’house est de bénéficier de l’expertise des développeurs sur Symfony et de pouvoir la combiner avec une expertise sur d’autres technologies. L’application ou l’API sera donc élaborée avec les outils les plus adaptés au développement de fonctionnalités.

Vous avez un projet en tête, ou vous avez tout simplement des questions ? Contactez Efficience IT, le spécialiste Symfony.

Contactez-nous !
Je veux en savoir plus !